Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Каменный обелиск напротив красивой церкви в бывшем индустриальном районе Берлина. Можно пройти мимо или обратить внимание на его интересную форму и потрепанный вид. Возможно у него за спиной непростая история.
Изначально, в 1931 году, это был мемориал, посвященный местными жителям, погибшим в Первую Мировую войну.
С каждой стороны памятника были фигуры людей, изображающих разные оттенки войны: рана, забота, защита и горе.
В 1942 году эти бронзовые фигуры были переплавлены уже в нуждах другой великой войны (был сильный ресурсный голод).
После финала другой войны этот памятник, потеряв все его детали, стал обычной серой глыбой.
Но лично для меня открытием стало то, что в 1949 году на него добавили текст: «Dem geschändeten Menschen».
Что означало: «Народу поруганному».
Спустя год надпись удалили из-за угроз местного руководства, оно пригрозило снести памятник. Осталось лишь напоминание в виде двух букв Е.
#de
Район Ной-Венедиг или по-русски Новая Венеция. Дачный поселок на востоке Берлина, названный так из-за каналов, которые разрезают местность на аккуратные лоскуты.
Изначально болотистое место хотели осушить, но в итоге построили каналы. Интересно, что людям не сразу пришло в голову называть это место Венецией и называли его Новый Камерун! Наверное, в память о бывшей немецкой колонии в Африке.
В ГДР это место было статусным, здесь располагались дачи восточно-германской номенклатуры. На информационном сайте нашел самое немецкое описание жизни этого дачного поселка в тот период:
С 1961 года привилегированные граждане ГДР сдавали в аренду имущество жителей Западного Берлина. Позже участки были возвращены законным владельцам.
Интересное место, правда гуляли там только мы, остальные были либо на лодках, либо на велосипедах.
#de
Берлин - город, конечно, интересный. Можно идти вдоль диких зарослей с гаражами в полной тишине, выйти к бывшей рыбацкой деревне, где в одной точке схлестываются люди на лошадях, старых мерседесах, велосипедисты и просто прогуливающиеся. На все это удивленно глядит маленький Ваня, смотрит на то, как этот город живет везде и сразу.
#de
Мемориал на окраине Берлина.
Рансдорф - бывшая немецкая деревня, ставшая чуть больше ста лет частью города. Место на вид добротная немецкая провинция, кровля крыш, элементы на домах, большие сады, низкие ограды. Пейзаж холмистый и песчаный, узнается, что в прошлом здесь были дюны. На одной из них стоит один из самых красивых военных памятников Берлина, который был построен непосредственно местными немцами, а не победителями.
Памятник построен в 1927 году. Не был военным мемориалом, а являлся памятником не вернувшимся с Первой Мировой войны землякам. Человека на памятнике отсылает к местной популярной мифологии о рыцаре Роланде, который обычно гордо держит “меч справедливости”. Здесь же это рыцарь в каске, который опустив меч серьезно глядит в даль. Была памятная доска с именами погибших солдат, в 1939 на нее добавили нацистского орла и памятник на мой взгляд превратился в образ реванша.
Сейчас мемориал жертвам фашизма и войны.
#de
Район города, в котором я что-то чувствую, потому что эти места теперь связаны с моей историей знакомства с городом, когда я год назад катался по серому весеннему Берлину без какой-либо цели. Безжизненное место с трассой и проезжающими ярко-желтыми трамваями.
Клингенбергская тепловая электростанция – название и ее историю я узнал уже после, а при первой встрече просто шатался вокруг и удивлялся такому огромному индустриальному гиганту в центре города. Построена в 1929 году, выглядит изящно, но трубы душили Берлин чёрным дымом (из-за угля). В 1945 году не успели подорвать, и коммуникации вывезли в страну-победительницу. Недавно станция перешла на газ.
Рядом с ТЭЦ находится старый жилой комплекс, который выглядит как пряничный ганзейский домик. Построен в 1925 году, это были дома для работников бывшего газового завода. Выглядит он посреди этой пустоты странно; в итоге оказалось, что в нем никто не живёт, а внутри располагаются разные творческие студии, мастерские и коворкинг. Ну что, на завод? #de
В странах западного-христианского мира происходит предрождественская суматоха.
По городу носятся замученные доставщики, заваленные коробками, люди, пытающиеся посетить все действующие в городе рождественские ярмарки; родители развешивают на колясках гирлянды. Через неделю все это резко прекратится, город опустеет и замрет в тишине.
А ещё в каждом магазине и даже палатке начали разливать глинтвейн из термосов и бочек, можно просто идти по улице и пробовать по стаканчику через каждый метр, правда далеко потом не уйдешь. Самый лучший обнаружил около дома в небольшом вечернем магазине - там его разливают прямо из самовара. #de
Был еще такой случай в Германии. Ехал я всё утро на велосипеде, часто останавливался и фотографировал. Навигатор приводил на закрытые участки дороги, и приходилось ехать через какие-то дикие поля.
Добрался уже без сил до города и увидел, что он пуст. По нему лишь медленно едет большой мусоровоз и тормозит буквально у каждого дома. Рядом с машиной бегают туда-сюда два работника и собирают желтые пакеты, лежащие у дверей домов.
Обогнав их, я поехал сквозь весь город, и он был полностью усыпан одинаковыми желтыми пакетами с мусором, которые медленно собирали эти трудяги.
Было очень странное некомфортное чувство посреди яркого дня. Весь город усеянный одинаковыми полупрозрачными желтыми пакетами, и ни души вокруг, только мусоровоз неспешно подчищает последние признаки присутствия людей в этом месте.
Это был район Фюрстенберг города Айзенхюттенштадт. #de
Поездка на велосипеде:
1. Кукурузные поля с ветряками на горизонте.
2-3. Церкви, которые встретил на пути (их было много).
4. Пожилая женщина фотографирует пейзажи и убирает фотоаппарат в сумку.
5-6. Мемориал советским солдатам.
7. Старая надпись "Cigarren."
8. Бывший видео салон.
9. Настенный социалистический мурал (можно увидеть провода, потому что в городе Эберсвальде есть троллейбус!). #de
Эберсвальде.
Заброшенная бумажная фабрика и недействующая электростанция. Город расположен вдоль небольшого, но длинного канала. Пару сотен лет назад Берлин был очень грязным городом (сейчас, кстати, тоже хаха), поэтому производство, где требовалась чистая вода, создавалось подальше от столицы. Здесь появилась бумажная фабрика, а позже тут построили первый будущий прообраз многих электростанций Германии.
Судьба Восточной Германии была такова: перед приходом Красной армии предварительно союзники всё массово разбомбили. После того, что уцелело, советские солдаты разобрали и увезли в качестве репарации.
Но этим двум сооружениям повезло: они продолжили работать и стали уже частью промышленности ГДР.
Бумажная фабрика закрылась спустя пару лет после объединения Германии, электростанция тоже, и частично обрушилась. Пережив две войны и социализм, производство с многовековой историей закрылось, не найдя себе места в новом мире. #de
Здание Государственного совета ГДР.
Построенное в 1960-е годы здание сохранили с минимальными изменениями. Гуляя по коридорам, возникало чувство, будто руководство ГДР исчезло отсюда совсем недавно. Рядом с лестницей, на все три этажа, изображена мозаика, показывающая историю социалистической Германии.
Экскурсия была на немецком, поэтому я мало понял. Одна из пожилых женщин приехала на велосипеде в спортивной одежде, тут же в фойе переоделась при нас в классическую одежду и словно инспектор ходила, задавая экскурсоводу вопросы. Вела себя как дома. На одном этаже мы увидели какие-то странные люстры, мужчина сказал - Наверное, те, кто жили в ГДР, помнят эти странные лампы в государственных бюро? Часть группы одобрительно посмеялась, а эта пожилая дама добавила - Но здесь же еще были вазы?
Похоже, у женщины было общее прошлое с этим зданием.
Еще гид рассказал, что здесь снимался клип группы Rammstein - Ich Will и вся женская часть группы раздраженно закатила глаза. #de