TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 4 подобни публикации

Търсене: #lunesenmedium

当前筛选 #lunesenmedium清除筛选
El friki de los libros

@AxiomaBlog · Post #834 · 07.09.2020 г., 17:40

#LunesEnMedium El arte de cantar al viento 📖✍👌 Si ya sabemos que Miguel Asturias es genio de la lengua, Premio Nobel y uno de los grandes escritores del continente, ¿por qué recomendar, setenta años después de su publicación, Viento fuerte (1950), la primera novela de su Trilogía de las Repúblicas Bananeras? 👇👇👇 Sigue leyendo este texto de Miguel Ángel Castiñeira García.

El friki de los libros

@AxiomaBlog · Post #780 · 31.08.2020 г., 16:28

#LunesEnMedium El arte es como el abismo. Una realidad visible y a la vez, incognoscible, insondable. Todos viven una vida tranquila hasta que chocan con el dilema: ▪️¿Qué es la literatura? ▪️¿Qué diferencia a un enunciado literario de uno no literario? ▪️¿Quién y bajo qué criterio decide si algo es o no un poema, es o no una novela, etc.? Este breve ensayo no son más que las cavilaciones de un loco que ha pasado varios años sumergido, apenas sobreviviendo, en esos océanos de tinta. https://link.medium.com/ntqjeB83o9

El friki de los libros

@AxiomaBlog · Post #956 · 21.09.2020 г., 14:01

#Eureka#LunesEnMedium Un texto de Iván de la Nuez “Si el posmodernismo llegó a definirse por el «Everything Goes», las reyertas actuales parecen regirse, directamente, por el «Que nada funcione». Sin dejar de columpiarnos entre el adanismo y el mimetismo, la izquierda le habla a la sociedad con el lenguaje académico de las universidades norteamericanas, y la derecha, con el discurso antiacadémico del populismo norteamericano. Toda una telenovela colonial en la que los patriotas conservadores y los antimperialistas progresistas coinciden en imitar a los Estados Unidos y en la que lo mismo copiamos una carta de luminarias ofendidas por lo que llaman «cultura de la cancelación» que el «Yes We Can» de Obama.” https://medium.com/@revistaelestornudo/quiénes-son-los-amigos-del-pueblo-y-cómo-luchan-contra-los-posmodernos-e9a2cf45e71f

El friki de los libros

@AxiomaBlog · Post #907 · 14.09.2020 г., 19:44

Hoy @AxiomaBlog reinaugura su sección dedicada a los ensayos y los artículos de análisis •#Eureka • Porque para encontrar debemos indagar bajo la superficie vivible de las cosas Política y estética del meme 🖊Jorge Carrión “Mallarmé afirmó que en el mundo todo existe para culminar en un libro. Hoy todo existe para culminar en una fotografía”, escribió Susan Sontag en 1977. A juzgar por los contenidos que más circulan por nuestras bandas anchas, se podría afirmar que en 2020 todo existe para culminar en un meme. 📌TNYT#LunesEnMedium