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

Резултати

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

Търсене: #archdaily

当前筛选 #archdaily清除筛选

MÆRSK TOWER IN COPENHAGEN. The Mærsk Tower is an extension to the University of Copenhagen’s Faculty of Health and Medical Sciences, located at the intersection of Nørre Allé and Blegdamsvej in Copenhagen. Architecture: Ramsing & Co Photo credit: Adam Mørk #arch_shovel#architecture#archdaily

1. Park with observation tower in Spremberg OT Haidemühl 2. Lookout Tower on Devínska Kobyla / Šebo Lichý architects 3. Ateliereen Architecten has proposed a metal and wood configuration for an observation tower in Peize, Netherlands. 4. The Observation Tower Data / Palmett - Markowe Ogrody + RYSY Architekci Rafał Sieraczyński 5. Observation Tower on the River Mur / terrain:loenhart&mayr 6. Viewing Tower Lommel / Ateliereen Architecten 7. THE CROWN, Casalgrande Padana, Italy. Kengo Kuma #architecture#arch_shovel#archdaily

VI MALL - work by Av8studio The project is simulated and designed based on a parametric modeling algorithm. Project location: Iceland Software: Revit - 3ds Max - Forest Pack Pro - coronarender – Ps What do you think about this design and visualization? Tag your Architect Friends! #architecture#arch_shovel#archdaily

THE GRAND CANAL Experience Center | by Shanghai PTArchitects The project is located in Hanjiang District, Yangzhou, China. The site adjoins the junction of Yunhe North Road and the Grand Canal. The section of the Grand Canal on its south side is a rare east-west water system in the city, with a width of 80 meters. By making use of the 600-meter-long canal landscape belt and the homecoming route with a length of 400 meters, the design team conceived a waterfront living scene within 1 kilometer, which looks like a landscape painting that gradually unfolds at the waterside. The building unfolds towards the Grand Canal, and dialogues with waterscape. The facade features distinct wavy forms at different heights by taking design cues from the rolling waves of the Grand Canal. The wavy structures interweave with glazing, showing the fusion of the real and virtual and closely integrating the building with the site. . 📍Hanjiang District, Yangzhou, CHINA ©️📷 SCHRAN #arch_shovel#architecture#archdaily

For Quest. RAW - renaissance of brutalism. Refreshing the urban image with it´s photogenic and bold aesthetic energy, RAW stands for longevity in our aera of constant change. Based upon the mixture between concrete brutalism and post modernism, the monumental ensemble is included in the list of cultural heritage. . Visualization by Beyondvisualarts . #architecture#archdaily#arch_shovel

Pictury + SOM | 350 North Morgan 350 North Morgan offers tenants an innovative office space surrounded by Chicago’s best retail, and food and beverage offerings. Located in the desirable Fulton Market neighborhood, 350 North Morgan is a destination for businesses looking to attract the next generation of innovative thinkers. The staggered design and unique façade create a compelling and light, cloud-like exterior, while the shifted volumes create a lofted and expansive interior, highly sought-after in modern office environments. This effect also leads to ample room to design tenant amenities, indoor/outdoor spaces, or terraces. . #arch_shovel#archdaily#architecture

Shoreline Crescent's curved façade made from glazed white bricks is fully revealed on site at Folkestone. A playful interpretation of the clinker brick sits within the concave rhythms of the south façade. . #arch_shovel#archdaily#архитектура

Completed in 2018, The Fuzhou Strait Culture and Art Center by PES-Architects takes inspiration from the petals of a jasmine blossom, the city flower of Fuzhou. The flower is manifested in the formal language, and the color of the architecture takes inspiration from the petals of a jasmine blossom, the city flower of Fuzhou. “Dividing the large complex into smaller units gives the Centre a more human scale and makes it easy for users to navigate indoors and outdoors. Each building has a core area — a semi-public, curved gallery that follows the curvature of the main façade — that integrates the public interior space with the landscape of the Jasmine Gardens around the building and further with the Mahangzhou island nature reserve in front of the Centre.” Says Pekka Salminen, Founder of PES-Architects. 📸 Photographs: Marc Goodwin, Yong Zhang, Martin Lukasczyk #parametricarchitecture#arch_shovel#archdaily

ПредишнаСтр. 1 от 5Следваща