Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
На этом канале в последнее время стали реже мелькать китайцы, но это не значит, что я отошла от чтения китайских новелл.
"Сайе" меня всё ещё не отпускает. Каждое воскресенье в группе Bao Inc. выходит новая глава, и я бросаю всё, чтобы узнать, когда же Цзян Чэн и Гу Фэй смогут вздохнуть полной грудью и зажить полной жизнью. Сейчас герои переживают этап разрыва и зализывания ран (кажется, это неизбежный поворот в историях про первую школьную привязанность). Цзян Чэн проходит через психотерапию после утраты "дома" в лице самого близкого и дорого человека (хотя сынок Пань Чжи не даёт ему окончательно пасть духом), а я через отрицание того, что до конца этой прекрасной новеллы осталось всего 29 глав.
⭐️ Цзян Чэн подумал, что за эти несколько дней он говорил больше, чем за весь предыдущий месяц, и даже представить себе не мог, что у него внутри накопилось столько всего.
— Я не боюсь быть отвергнутым. С самого детства я не получал почти никакого одобрения. Когда дело доходит до самоутверждения, нужно прислушиваться к самому себе. Если считаю, что я хороший — значит так оно и есть, — сказал Цзян Чэн, держа кота и нежно почёсывая ему брюшко. — Если однажды всё сделанное мной для него забудется, так тому и быть. Мне всё равно. Я делал это не ради того, чтобы он меня помнил или хорошо обо мне думал. Я сам знаю, насколько хорош. Мне даже не нужно, чтобы он знал, что я сделал. Или что ещё собираюсь сделать. Это было моим собственным желанием.
У Чжэ. Дерзай! Глава 124. Ни цели, ни пристанища
Cr. MANCOOL
#China#novel#WuZhe#SaYe
⭐️ Он не хотел находиться в этом крохотном городишке ни днём дольше и всё, чего желал – просто сбежать. А теперь, покидая его, ему не хотелось уезжать.
Хотя он всё ещё не был намерен остаться здесь – да и это было бы совершенно невозможно – этот город хранил драгоценные воспоминания, которые он никогда не забудет, а также был домом человека, от которого он не откажется даже под угрозой смерти.
У Чжэ. Дерзай! Глава 108. Я по тебе очень скучаю. Прямо сейчас
Я так прикипела душой к переводу Bao Inc., что никак не могу заставить себя перейти на английский текст, чтобы поскорее дочитать эту историю. Живу от воскресенья до воскресенья.
Cr. 踏月锦
#China#novel#WuZhe#SaYe
Когда-то на волне тоски по новелле Му Сули "Единственный" я взялась за новеллу "Дерзай!" У Чжэ в надежде найти что-то похожее и тем утешиться. Но по факту нашла что-то совсем иное, не менее пронзительное, а местами даже более всеохватывающее, что-то на уровне безысходности, которая сильнее всех нас.
Цзян Чэн, оказавшись на обочине жизни, без семьи и перспектив, отказался смиряться и влачить жалкое существование в маленьком убогом городке, поэтому продолжал усердно учиться, чтобы однажды вырваться из него и вернуться к той жизни, которая была ему под стать. В этом городке он встретил Гу Фэя, талантливого парня, который сжился с ролью пофигиста, чтобы не задумываться о том, какое будущее ему уготовано.
Столкновение двух противоположностей привело к аннигиляции и вскрыло очень болезненный нарыв. Равнодушие нередко становится защитной маской для тех, кто не способен что-то изменить. Для Цзян Чэна контраст жизни в большом городе и в захудалой провинции был болезненно очевиден — ему было с чем сравнивать. Но и Гу Фэй не жил в вакууме. Он понимал, что мог бы добиться большего, но не по своей воле оказался заложником жизненных обстоятельств. Он пытался с этим смириться, но его насильно разбудили и вырвали из мира сладкого самообмана. А нет кошмара страшнее, чем жестокая реальность.
⭐️— Что ты хочешь, чтобы я знал? Насколько я хорош и превосходен? Чтобы другие поняли, что я умный и талантливый? А что потом? — Гу Фэй понизил голос. — Чэн-гэ, ты ведь знаешь, каково это — чувствовать себя здесь не на своём месте, верно?
Цзян Чэн посмотрел на него.
— Я спал и ничего об этом не знал, — голос Гу Фэя слегка дрожал. — Зачем ты меня разбудил? Ты можешь уехать отсюда. И ты должен это сделать. А как мне быть?
Каково это – чувствовать себя здесь не на своём месте?
Он сам испытал это ощущение, когда сошёл с поезда и сделал первый шаг из здания вокзала. Юноша до сих пор ясно помнил всю ту безысходность и расстилающуюся перед глазами серость. Всё это время он так усердно работал именно для того, чтобы покинуть это место.
— А как мне быть? Чэн-гэ, — тихо произнёс Гу Фэй, — я здесь. Я закован в кандалы и не знаю, когда смогу их снять. Возможно, мне никогда от них не избавиться. А теперь я проснулся и должен смотреть на всё это открытыми глазами. Я не смогу с этим смириться, и мне будет больно. Ты понимаешь?
У Чжэ. Дерзай! Глава 88. Прости меня, Гу Фэй
#China#novel#WuZhe#SaYe
Вся суть новеллы "Дерзай!" У Чжэ в одной фразе:
❝ Связавшись с сюэчжа, сюэба покатился прямо по бесстыжей наклонной. Не зря учителя и родители с детских лет и до зрелого возраста не позволяют хорошим детям водиться с хулиганами.
У Чжэ. Дерзай! Глава 86. Дерзай
* сюэчжа — противоположность сюэба, ученики, которые не хотят учиться, забивают на уроки и учёбу, зачастую отморозки и члены уличных банд.
#China#novel#WuZhe#SaYe
Вместо тысячи слов об эвфемизмах в китайских новеллах... одна цитата:
❝ Изначально я хотел, чтобы злостный разгильдяй пробежался по заметкам перед своим дебютом. Но я никак не ожидал, что человек с репутацией хулигана сталелитейного завода внезапно проявит благородный порыв уважать пожилых и заботиться о младших и уступит мне эту возможность.
У Чжэ. Дерзай! Глава 76. Ночь длинна, и я не собираюсь спать
#China#novel#WuZhe#SaYe
По такому описанию уже можно сделать вывод, что перед нами — пугающе разносторонняя личность...
❝ – Ой, – Цзян Чэн виновато улыбнулся Гу Мяо и снова повернулся к Гу Фэю. – Ты сам её связал? Ты и такое умеешь?
– М-м, – утвердительно произнёс Гу Фэй.
Цзян Чэн внезапно ощутил, как сформированный до этого момента в его голове образ Гу Фэя размывается: носит конфеты в кармане, умеет вязать зелёные шапки, предположительно убийца родного отца...
У Чжэ. Дерзай! Глава 9. Дело об избиении в чистом виде
#China#novel#WuZhe#SaYe
Печальные новости с китайских полей
Платформа Kuaikan Manhua официально объявила об окончании выпуска маньхуа "Дерзай!" (Saye) по новелле У Чжэ. К сожалению, на сегодняшний день было адаптировано только 2/3 истории.
Ещё один осиротевший любимый проект.
#China#manhua#WuZhe#SaYe
Очень кстати вчера издательство Seven Seas показало обложку второго тома новеллы У Чжэ "Дерзай!" (Run Wild) от Tayue Jin (踏月锦). За внутреннее оформление отвечает Ding Yue Rong.
Том уже доступен для предзаказа на Logobook. Выход из печати намечен на июнь.
#China#novel#WuZhe#Saye#SevenSeas
Не могу пройти мимо анонса обложки первого тома новеллы "Дерзай" У Чжэ (2016, 145ch+5ex) от Seven Seas
🤣 Дата выхода: 21 января 2025 г.
🤣 Художник обложки 踏月锦
🤣 Художник внутренних иллюстраций Ding Yue Rong
Описание: Цзян Чэн никому не нужен на этом свете. Мать не хочет его видеть, отец даже не помнит, как он выглядит. Из родного края его вынуждают уехать в забытое всеми богами место, о котором он никогда даже не слышал. В этом унылом и неприветливом городе Цзян Чэн первым делом встречает странную девочку и ее брата. С ними причудливым образом переплетется его жизнь, которую он давно считает потерянной...
🤣Текст на языке оригинала
🤣На русском полного перевода я не видела. В онгоинге первые 60 глав можно прочитать на Wattpad
🤣Переводы на английский уже удаляют с сайтов по просьбе правообладателя
🤣Манхва на русском (онгоинг) и на английском (онгоинг)
#China#novel#WuZhe#Saye#SevenSeas
Из забавного: сейчас дочитываю две книги, действие которых или подкатило к Новому году, или с него началось (а я ещё даже не смотрю в сторону оливье!)
С новеллой "Дерзай!" У Чжэ всё понятно. Там Новый год — это повод вернуться к родным людям, чтобы с ними всё прояснить и начать новый год с нового листа.
Но в "Дорогуше" Си Джей Скьюз Новый год — это точка отсчёта, когда что-то в голове героини переключается, и она решает взяться за нож (не без причины, конечно, но, по ощущениям, в ней эта потребность давно сидела). Удивительно будничные зарисовки с тонной сарказма и убийственными вайбами.
Неочевидные кандидаты на завершение моего читательского года, но пути книжные неисповедимы. Скоро подведу итоги!
#China#novel#WuZhe#SaYe#Великобритания#СиДжейСкьюз#Дорогуша
Апдейта по прочитанному снова не будет (посыпаю голову пеплом), но вместо этого оставлю здесь сумбурную заметку о горизонтальных и вертикальных ассоциациях вокруг прочитанных новелл
⭐️ Когда я читала "Седьмого Господина" Прист, я поймала себя на мысли, что уровень трагизма с первой же главы слегка зашкаливал (ничего не имею против) — история перерождений Цзин Бэйюаня оставляла привкус горечи и безысходности, а финальный аккорд в виде жертвы, которая в последнее перерождение вернула тому чёрные волосы, был таким непередаваемо щемящим, что меня не могло не сразить наповал... Апдейт: это был не предел. В "Старшем брате"Прист понадобились две главы, но переход в реалистичный сеттинг сделал своё дело — на месте, где должны были быть чувства, осталось полное опустошение.
⭐️ Когда я узнала о прошлом Фэй Ду из "Безмолвного чтения", я думала, что сложно себе представить более трагичное детство (когда к этому не было никаких внешних предпосылок). Но нет, первые 13 лет жизни Вэй Цяня из "Старшего брата" оказались тем ещё адом: он был зачат в результате изнасилования и стал для своей матери воплощением искалеченной судьбы. Мог ли он быть любим? Мог ли он в полной мере ненавидеть мать-наркоманку, когда так зависел от неё?
Отношение Вэй Цяня к ней было очень неоднозначным, но страх перед её безумием заставил мальчика задуматься о том, что единственный способ прекратить мучения — подсыпать ей яд в пищу и уйти вслед за ней.
❝ Гамлета мучил вопрос: "Быть или не быть?", но вопрос, который в детстве мучил Вэй Цяня, был куда серьёзней: "Убить мать или не убить?" (Глава 2)
⭐️ Так вышло, что сейчас я читаю в параллели три новеллы, в которых у главных героев скопился незавидный багаж сомнительных семейных связей.
К Вэй Цяню можно на минутку присоседить Чжун Чэншо ("Зло похоже на людей" Нянь Чжун) — сына серийных убийц, которого усыновили копы. Хотя с приёмными родителями ему повезло гораздо больше, чем Цзян Чэну ("Дерзай!" У Чжэ) — тот в 17 лет узнал, что был приёмным сыном, и был вытурен к биологическому отцу в богом забытую провинцию. А всё почему? А всё потому, что его буйный нрав мутил стоячие воды рафинированной приёмной семьи. В итоге парню пришлось мириться не только с чужим и чуждым окружением, но и с собственной ненужностью и порванными связями. И вдобавок родной папаша оказался игроком и пьянью, что заставило мальчишку содрогнуться от одной мысли о том, какой отпечаток оставят на нём такие кровные узы. Мрак да и только.
Выход? Строить новые связи и создавать свою собственную семью не по крови, но по духу. Хотя для начала достаточно просто выжить и не спиться.
Cr.: 顾旧云深 (weibo)
#China#novel#Priest#LordSeventh#DaGe#NianZhong#EvilAsHumans#WuZhe#SaYe