Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Сегодня завтрак начался с бокала вина и день выдался ленивым и томным с дневным сном и сериалом от которого не оторваться
В музей Востока мы так и не доехали, зато по пути в салон я не удержалась и купила бутылочку красного уже обычного объема 0,75 литра. Так что толер как бы и не снизился хотя суммарно вышло не 4 стандартных бутылки на двоих за два дня, а три. Почему по пути в салон? Ну просто педикюр в 20:00 и был риск не успеть на обратном, а риск-менеджмент- наше всё
Еще в моей жизни сейчас много перемен. Ритм и прогресс точно в том темпе который необходим и вообще возможен учитывая все события трех минувших лет. На этот год у меня большие планы, пока я к ним иду медленно, но верно максимально нагрузив себя трудотерапией и работая над тем, чтобы вас удивлять много и часто пишу о том и делюсь с вами чем могу здесь и сейчас- это многочисленными историями о былых приключениях и искусстве, особенно кино
Знаете, я уже достаточно давно поняла, что суть жизни в ее непредсказуемости, но только сейчас осознаю, что начинать все с начала невероятно увлекательно и интересно не смотря на то, что это весьма не просто
На рейвы как-то пока не хочется хотя много интересных ивентов. Жду весны, чтобы встречать рассвет в курилке и разговаривать обо всем и ни о чем
В декабре два раза была на Секте на Синестезии и Китчен рейв и не пожалела. С самого начала его пути и до феноменального роста он был и остается одним из самых моих любимых артистов. Еще вспоминаю Черту и последнюю вечеринку команды почти год назад. Я даже дату запомнила- 22 февраля. Самый мой любимый рейв прошлого года. Еще был М див весной и предпоследняя вечеринка в Арме. Мы думали, что прощаемся с заводом и было как-то особенно лирично чтоли. Но не тут то было, клуб на Шарикоподшипниковской не так-то просто отправить в отставку хотя он навсегда лично для меня останется Мутабором в который я пришла в 2019 и загорелась идеей снимать на рейвах влюбившись отчаянно в техно. Много воды утекло с тех пор: стремительное начало в рейв-фотографии, три года работы с Мона, команда заботы, воспеты взлет и больное падение. Я даже на какое-то время разлюбила рейв, но и это прошло. Что остается неизменным- это любовь к техно. Прямая бочка она такая 🖤
#diary
Знаете, неожиданно для себя я вдруг поняла, что действительно слишком увлеклась этой идеей предстать идеальной ибо когда человек ( не важно кто он тебе отец или сосед) обесценивает любые твои достижения вне зависимости от сферы этих достижений
Грубо говоря, вот за последние пять лет ты волонтерил в приюте, стал фин куратором пяти животных, а это значит буквально 5 спасениях жизней, два года проработал в компании и зарабатывал деньги, но более ты там не работаешь, стал писать картины и даже провел выставку и тп. То есть буквально все на свете, но человек напротив обесценивает абсолютно все. Благотворительность- это вложения, а не доход. Если не работаешь больше в той компании, то какая разница сколько зарабатывал, а выставка без продаж работ не имеет никакого значение. И вдруг я осознала очень четко и ясно, что я так боялась разочаровать, что почти не заметила как разочаровалась сама. И я выбрала себя
Пусть я не образца 2017 когда я реально рубила бабки, и даже в 2022 шальные деньги на крипте были очень большими, просто пошли не туда. Тем не менее… миллион в месяц я зарабатывала. Было дело. И тратила тоже миллион в месяц. Тоже было дело. Пусть это и случалось эпизодично с высоты прожитых лет. Но это было и я знаю эти ощущения, и мне не жалко ни каких-то огромных трат в никуда в том же 2022-2023 или в том, что я вышла и крипто торговли на биржах в 2018 ( у меня были везде про аккаунты с достаточно большими депозитами). Рынок крипты хаотичен и создан теми кто им и манипулирует. Рынок тебя все равно вышибет сколько не спорь. Вопрос времени. Я вынырнула вовремя. Это тоже достижение. В плюсе
В общем, я настолько видимо нервничала, что мне прямо вот до талова несвойственно, что неведомый недуг свалил меня с ног перед встречей и аккурат после. Причем после аж на неделю. Это не была простуда, я чувствовала боль в тех местах где нет органов, спала сутками пока, наконец, не убедилась, что ее величество Психосоматика вошла в чат. И приняла это как данность
Сегодня первый день когда я прямо в боевой готовности все делать и решать и повторюсь, что я выбираю себя хотя люблю очень много людей. Это не эгоизм, а здоровое отношение к себе. Только уважая себя самого и трезво понимая текущие достижения и провалы ты можешь двигаться вперед, расти и отдавать любовь своим близким
Мне было прикольно погрузиться в воспоминания о 2010-х. Спасибо, блин, тренды в запрещеннограмме. Но прошлое есть прошлое. Круто, что есть, что вспомнить. И круто, что можно опираясь на прошлое быть планкой для самого себя
Пусть я сейчас возможно звучу смешно и неубедительно, с плохими охватами и практически не являюсь никаким примером и авторитетом, но я сегодня являюсь лучшей версией себя за последние 3 года. И это- достижение…
#diary
Мой год начался очень насыщенно. Точнее, еще в декабре я начала готовиться к встрече с близким мне человеком с которым не общалась порядка десяти лет. Я настолько в эту подготовку нырнула в омут с головой, что в какой то момент сделать все идеально стало навязчивой идеей
Параллельно со всем этим я начала работать с психологом и мы проговаривали о том, что никто ничего никому должен, быть собой и сохранять себя настоящего каким ты являешься в текущий период жизни намного важнее, чем соответствовать чужим ожиданиям. Я это все прекрасно понимала и до наших сессий и тем более все раскладывалась по полочкам с каждой нашей онлайн встречей. И, скажем так, мы сошлись на том, что предстоящая встреча стала тем самым волшебным пенделем и то, что я не могла никак наконец закончить: это сделать генеральную уборку, наконец разобраться с финансами, доходами и расходами, облагородить дом и вообще на энтузиазме можно достаточно долго лететь вперед решая все дела на своем пути. Следующий шаг- это тебя уже прет твоя продуктивность. Так что энтузиазм- это мощная энергия
Я поставила себе цели которые в данный момент моей жизни изначально казались невыполнимыми. Рассчитывая на себя ( хотя меня поддерживает морально и материально бывший супруг и с ним мы вообще сейчас абсолютно в прекрасных отношениях, научились соблюдать личные границы, не давать оценку действиям друг друг и вообще быть терпимее. И пусть работы еще предстоит много мы с ним проделали колоссальный путь). Тем не менее я расписала все, что хочу купить на подарки, в дом, сделать весьма серьезные бьюти-процедуры которые дают действительно явный эффект и, соответственно, стоят). Список оказался внушительным и так как я еще набираю былую форму к доходу который меня устраивает я еще не вернулась. Неожиданно я поймала себя на том, что в голове все ясно и я четко ставлю себе цели, подцели и, разумеется, мечты. У меня есть понимание как все это достичь. И пусть моя цель к 7 января когда, наконец, встреча случилась я выполнила все запланированное и даже больше, и несказанно этому рада. Я сама от себя не ожидала такой конкретики. Пусть и в былые времена я легко делала иксы от тех цифр, которые были для меня определяющими в этом году, но я выполнила все запланированное. Вообще все #diary
Продолжение 👇