Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Batman & Mr. Freeze: SubZero
aka Batman Animated Movie II: The Iceman's Cometh
🗓Año 1998
⏱️Duración 70min.
🎥Dirección#BoydKirkland
📄Guion Boyd Kirkland, Randy Rogel.
👤Personajes#BobKane, DC Comics
🎼Música Michael McCuistion
🎬Productora Warner Bros. Animation, Warner Bros.
Género#Animación#Cienciaficción#Acción#Drama#Superhéroes#Cómic#DCComics
Reparto | Trailer | Sinopsis | Premios
Ver Aquí
SagaDC Comics: Batman
AnexoPremiadas
Batman Beyond: Return of the Joker
aka Batman of the Future: Return of the Joker
🗓Año 2000
⏱️Duración 77min.
🎥Dirección#CurtGeda
📄Guion Paul Dini, Glen Murakami, Bruce W. Timm.
👤Personajes#BobKane
🎼Música Kristopher Carter
🎬Productora Warner Bros. Animation.
Productor Bruce W. Timm
Género#Animación#Acción#Cienciaficción#Thriller#Superhéroes#Cómic#DCComics
Reparto | Trailer | Sinopsis | Premios
Ver Aquí
SagaDC Comics: Batman
AnexoPremiadas
DC The Batman Season 5
📅Año Septiembre 2007 - Marzo 2008
🎥Dirección Brandon Vietti, Seung Eun Kim, Anthony Chun, Sam Liu, Vinton Heuck, Chris Berkeley, Matt Youngberg, John Fang
👤Personajes#BobKane
🎼Música Thomas Chase
🎬Productora Warner Bros. Animation, DC Comics, Warner Bros.
Productor#MichaelGoguen (Creador), #DuaneCapizzi (Creador)
Género#SeriedeTV#Animación#Fantástico#Acción#Superhéroes#Cómic#DCComics
Resumen
Batman, Batgirl y Robin hacen equipo con la Liga de la Justicia, y también con aquellos que no forman parte de la Liga como Superman, que por cierto usaron a Brandon Routh como base para este Superman y curiosamente el propio Routh hace la voz del villano Vértigo. Este sería el fin de la serie a pesar de dejar un final abierto.
⏱Duración 22min.
🖥Resolución 720x400
🗣Idioma Latino
Season 5 Episodio 01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 -10 - 11 - 12 - 13
Season1 - 2 - 3 - 4
Suscripción a esta Serie 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí
DC The Batman Season 4
📅Año Septiembre 2006 - Mayo 2007
🎥Dirección Brandon Vietti, Seung Eun Kim, Anthony Chun, Sam Liu, Vinton Heuck, Chris Berkeley, Matt Youngberg, John Fang
👤Personajes#BobKane
🎼Música Thomas Chase
🎬Productora Warner Bros. Animation, DC Comics, Warner Bros.
Productor#MichaelGoguen (Creador), #DuaneCapizzi (Creador)
Género#SeriedeTV#Animación#Fantástico#Acción#Superhéroes#Cómic#DCComics
⏱Duración 22min.
🖥Resolución 720x400
🗣Idioma Latino
Resumen
Dick Grayson era un joven artista de circo, cuyos padres mueren en un accidente mientras realizaban una actuación en él. Tras ello, Bruce lo adopta. Robin comienza su vida de héroe. Batman, Robin y Batgirl unen fuerzas con el Detective Marciano para detener la invasión de la fuerza extraterrestre, conocida como "The Joining".
Season 4 Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13
Season1 - 2 - 3 - 5
Suscripción a esta Serie 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí
DC The BatmanSeason 3
📅Año Septiembre 2005 - Mayo 2006
🎥Dirección Brandon Vietti, Seung Eun Kim, Anthony Chun, Sam Liu, Vinton Heuck, Chris Berkeley, Matt Youngberg, John Fang
👤Personajes#BobKane
🎼Música Thomas Chase
🎬Productora Warner Bros. Animation, DC Comics, Warner Bros.
Productor#MichaelGoguen (Creador), #DuaneCapizzi (Creador)
Género#SeriedeTV#Animación#Fantástico#Acción#Superhéroes#Cómic#DCComics
Resumen
Barbara Gordon, la hija del comisionado, asume el rol de Batgirl, aunque Batman no tiene ningún interés en que lo ayude en la lucha contra el crimen y trata de hacerla abandonar esa identidad. Esto acaba con el episodio Truenp, en el que Bruce, iluminado por su leal mayordomo y amigo, Alfred le toma a Batgirl como su ayudante.
⏱Duración 22min.
🖥Resolución 720x400
🗣Idioma Latino
Season 3 Episodio 01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13
Season1 - 2 - 4 - 5
Suscripción a esta Serie 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí
Batman: Arkham Asylum
🗓Año 2009
⏱️Duración 128min.
País🇬🇧Reino Unido
🎥Dirección#SeftonHill
📄Guion Paul Dini, Paul Crocker.
👤Personajes#BobKane
🎼Música Nick Arundel, Ron Fish
🎬Productora DC Comics, Rocksteady Studios, Warner Bros. Interactive Entertainment (WBIE).
🚚Distribuidora Eidos Interactive, Warner Bros. Interactive Entertainment (WBIE)
Género#Animación#Acción#Thriller#Superhéroes#Cómic#DCComics#Videojuegonarrativo
Reparto | Trailer | Sinopsis
Ver Aquí
SagaDC Comics: Batman
The Batman vs Dracula: The Animated Movie
🗓Año 2005
⏱️Duración 80min.
🎥Dirección#MichaelGoguen
📄Guion Duane Capizzi.
📖Historia Michael Jelenic
👤Personajes#BobKane, #BramStoker
🎼Música Doug Andorka
🎬Productora Warner Bros. Animation
Género#Animación#Fantástico#Acción#Vampiros#Superhéroes#Cómic#DCComics
Reparto | Trailer | Sinopsis | Premios
Ver Aquí
SagaDC Comics: Batman
AnexoPremiadas
Batman: Mystery of the Batwoman
🗓Año 2003
⏱️Duración 74min.
🎥Dirección#CurtGeda, #TimMaltby
📄Guion Michael Reaves, Alan Burnett.
👤Personajes#BobKane
🎼Música Lolita Ritmanis
🎬Productora Warner Bros.
Género#Animación#Acción#Aventuras#Intriga#Superhéroes#Cómic#DCComics
Reparto | Trailer | Sinopsis
Ver Aquí
SagaDC Comics: Batman
Batman: Mask of the Phantasm
🗓Año 1993
⏱️Duración 76min.
🎥Dirección#EricRadomski, #BruceWTimm
📄Guion Paul Dini, Alan Burnett, Martin Pasko, Michael Reaves.
👤Personajes#BobKane
🎼Música Shirley Walker
🎬Productora Warner Bros. Animation, Dong Yang Animation, Spectrum Animation Studio.
Productor Bruce W. Timm
Género#Animación#Fantástico#Acción#Misterio#Superhéroes#Cómic#DCComics
Reparto | Trailer | Sinopsis | Premios
Ver Aquí
SagaDC Comics: Batman
AnexoMisterio | Premiadas
The Batman Season 2
📅Año Mayo 2005 - Septiembre 2005
🎥Dirección Brandon Vietti, Seung Eun Kim, Anthony Chun, Sam Liu, Vinton Heuck, Chris Berkeley, Matt Youngberg, John Fang
👤Personajes#BobKane
🎼Música Thomas Chase
🎤Opening#TheEdge del grupo #U2
🎬Productora Warner Bros. Animation, DC Comics, Warner Bros.
Productor#MichaelGoguen (Creador), #DuaneCapizzi (Creador)
Género#SeriedeTV#Animación#Fantástico#Acción#Superhéroes#Cómic#DCComics
⏱Duración 22min.
🖥Resolución 608x448
🗣Idioma Latino
Season 2 Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13
Season1 - 3 - 4 - 5
Suscripción a esta Serie 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí
The BatmanSeason 1
📅Año 2004
🎥Dirección Brandon Vietti, Seung Eun Kim, Anthony Chun, Sam Liu, Vinton Heuck, Chris Berkeley, Matt Youngberg, John Fang
📄Guion Steven Melching, Alexx Van Dyne, Joseph Kuhr, Greg Weisman, Stan Berkowitz, Michael Jelenic, Bob Goodman, Jane Espenson, Douglas Petrie.
👤Personajes#BobKane
📝Diseño de Personajes#JeffMatsuda
🎼Música Thomas Chase
🎤Opening#TheEdge del grupo #U2
🎬Productora Warner Bros. Animation, DC Comics, Warner Bros.
Productor#MichaelGoguen (Creador), #DuaneCapizzi (Creador)
🚚Distribuidora The WB, The CW, HBO
Género#SeriedeTV#Animación#Fantástico#Acción#Superhéroes#Cómic#DCComics
Reparto | Intro | Sinopsis | Premios
⏱Duración 22min.
🖥Resolución 720x400
🗣Idioma Latino
Season 1 Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13
Season2 - 3 - 4 - 5
Suscripción a esta Serie 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí