Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Adresare către cetățenii indeciși!
Dragi prieteni, știu că sunt foarte mulți cetățeni indeciși – peste 26%.
Eu nu voi cerși voturi, nu o să vă povestesc istorii frumoase, nu voi încerca să vă spun ceva care să vă placă pentru a ne vota.
Eu doar vreau să vă rog să vă gândiți și să ieșiți la vot! Dacă dumneavoastră veți rămâne indeciși până după alegeri, înseamnă că va fi târziu.
Imediat după alegeri vor ieși la iveală scheme noi despre gaz!
Sau vreți să așteptați să mai găsim zeci de tone de păcură îngropate?!
Sau vreți să pierdem accesul la Dunăre? Este o informație strict secretă pe care am primit-o cu câteva ore în urmă.
Sau veți decide atunci când, imediat după parlamentare, până la validarea mandatelor, Vladimir Plahotniuc va fi liber?!
Sau veți decide când, imediat după parlamentare, urmare a unor înțelegeri, principalul suspect în “dosarul Kuliok” va fi achitat?!
Sau poate veți decide atunci când, după alegeri, veți afla că una dintre principalele persoane din conducerea statului și-a cumpărat deja casă în secret la Londra și se pregătește pentru evacuare?!
Eu cred că atunci va fi prea târziu!
Haideți să luăm împreună decizia corectă pe 28 septembrie! E TIMPUL SĂ FIM ÎMPREUNĂ! #PartidulNostru#DoarPentruMoldova
Renato Usatîi - unicul lider politic care a răspuns la întrebările jurnaliștilor în trei limbi – în limba de stat, în rusă și engleză
Președintele Partidului Nostru, Renato Usatîi, s-a remarcat astăzi ca unicul lider politic care a răspuns întrebărilor jurnaliștilor în trei limbi – în limba de stat, în rusă și engleză – la ieșirea din secția de votare. Continuare...
---
Ренато Усатый — единственный политический лидер, который ответил на вопросы журналистов на трёх языках — на государственном, русском и английском
Председатель Нашей Партии Ренато Усатый сегодня был единственным политическим лидером, который после выхода с избирательного участка ответил на вопросы журналистов на трёх языках — на государственном, русском и английском. Подробности по ссылке...
#PartidulNostru#НашаПартия#DoarPentruMoldova
Igor Pohila, Partidul Nostru: Justiția trebuie înfăptuită în sala de judecată, nu în birourile politicienilor!
Detalii..
--
Игорь Похила, Наша Партия: Справедливость должна вершиться в зале суда, а не в кабинетах политиков!
Подробности - по ссылке...
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
Duminică, 7 septembrie
🕙10:00 – satul Glinjeni, la intrare în Piață
🕚11:00 – satul Catranîc, în fața Casei de Cultură
🕐13:00 – satul Musteața, în fața Casei de Cultură
🕝14:15 – satul Năvîrneț, Parcul Central
🕓16:00 – or. Fălești, Parcul Central
Stimați locuitori ai raionului și orașului Fălești și ai satelor Glinjeni, Catranîc, Musteața, Năvîrneț, vă invit la o discuție deschisă, unde vom prezenta soluțiile Partidului Nostru pentru dezvoltarea Moldovei – acum, nu peste ani!
E TIMPUL SĂ FIM ÎMPREUNĂ!
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
Sâmbătă, 6 septembrie
🕛12:00 – municipiul Ungheni, Parcul „Micul Cluj”
🕐14:15 – satul Petrești, Casa de Cultură
🕝15:30 – satul Costuleni, Casa de Cultură
🕓16:45 – satul Pîrlița, Casa de Cultură
🕔17:40 – orășelul Cornești, Casa de Cultură
Stimați locuitori ai raionului Ungheni, ai satelor Petrești, Costuleni, Pîrlița și ai orășelului Cornești, vă invit la o discuție deschisă, unde vom prezenta soluțiile Partidului Nostru pentru dezvoltarea Moldovei – acum, nu peste ani!
E TIMPUL SĂ FIM ÎMPREUNĂ!
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
Vineri, 5 septembrie, ora 18:30
Orașul Sîngerei, Piața Independenței (în fața Casei de Cultură)
Stimați locuitori ai raionului Sîngerei, Vă invit la o discuție deschisă, unde vom prezenta soluțiile Partidului Nostru pentru dezvoltarea Moldovei – acum, nu peste ani!
E TIMPUL SĂ FIM ÎMPREUNĂ!
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
Joi, 4 septembrie, 18:30, orașul Șoldănești, Scuarul Tinerilor, str. Păcii.
Stimați locuitori ai raionului Șoldănești, vă invit la o discuție deschisă, unde vom prezenta soluțiile Partidului Nostru pentru dezvoltarea Moldovei – acum, nu peste ani!
E TIMPUL SĂ FIM ÎMPREUNĂ!
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
Ренато Усатый ответил на обращение Ирины Влах: Наша Партия не будет создавать альянс ни с PAS, ни с блоком «Чужая свадьба». Наш единственный союзник – граждане Молдовы!
«В отличие от вас, Наша Партия давно и четко сказала, что с PAS не будет делать коалиции – с дураками и бездельниками коалиции делать не будем. Но вам понадобилось это представление. Не вы решаете – будете ли вы создавать коалицию или нет – за вас решают другие. С большинством из вас говорить не о чем – нужно решать с вашими хозяевами. Это не пакт, это чужая свадьба, и быть свидетелем на ней я не собираюсь», - подчеркнул Ренато Усатый.
Он заявил, что единственный союз, который подпишет он и Наша Партия, это союз с народом. Подробнее – по ссылке...
---
Renato Usatîi a răspuns la solicitarea Irinei Vlah: Partidul Nostru nu face alianță nici cu PAS, nici cu blocul «Чужая свадьба». Unicul aliat al Partidului Nostru este cetățeanul Republicii Moldova!
«Spre deosebire de voi, Partidul Nostru a spus demult și clar: nu va face coaliție cu PAS – cu proști și incompetenții nu facem coaliții. Nici cu așa-numiții pro-europeni, nici cu «russkii mir».Dar vouă v-a trebuit acest spectacol. Nu voi decideți dacă faceți sau nu o coaliție – pentru voi decid alții. Cu majoritatea dintre voi nu are rost să vorbesc – trebuie de discutat cu stăpânii voștri. Acesta nu e un pact, e «Чужая свадьба», iar eu nu vreau să fiu lăturaș la această nuntă», a subliniat Renato Usatîi.
El a precizat că singura alianță pe care o va semna el și Partidul Nostru este alianța cu poporul. Detalii...
#PartidulNostru#НашаПартия#DoarPentruMoldova
Miercuri, 3 septembrie, 18:30, orașul Nisporeni, Parcul Central „La Moară”.
Stimați locuitori ai raionului Nisporeni, vă invit la o discuție deschisă, unde vom prezenta soluțiile Partidului Nostru pentru dezvoltarea Moldovei – acum, nu peste ani!
E TIMPUL SĂ FIM ÎMPREUNĂ!
#DOARPENTRUMOLDOVA
#partidulnostru#нашапартия
🔷🔷🔷🔷🔷Resetarea Partidului Nostru continuă: echipa din Ocnița se extinde și își consolidează structura!
Renato Usatîi s-a întâlnit, duminică, cu echipa Partidului Nostru din Ocnița pentru a discuta despre consolidarea structurii organizatorice a partidului în teritoriu, despre pregătirea pentru alegerile parlamentare și despre pașii concreți pentru dezvoltarea țării. Liderul Partidului Nostru le-a mulțumit membrilor locali – atât celor care sunt alături de formațiune de la creare, cât și celor care s-au alăturat pe parcurs.
Pentru noi toți sunt egali, și eu mulțumesc tuturor că sunteți alături de noi. Pentru majoritatea oamenilor din Republica Moldova, Partidul Nostru este ultima speranță. Iar resetarea Partidului Nostru înseamnă reconstrucția unei forțe curate, care nu a fost niciodată la guvernare și care azi este unica alternativă reală.
Detalii...
---
Перезагрузка Нашей Партии продолжается: команда в Окнице расширяется и укрепляет свою структуру!
В воскресенье Ренато Усатый встретился с командой Нашей Партии из Окницы, чтобы обсудить вопросы консолидации организационной структуры партии на местах, подготовку к парламентским выборам и конкретные шаги по развитию страны. Лидер Нашей Партии поблагодарил однопартийцев – как тех, кто в партии с cамого начала, так и тех, кто присоединился к ней позже.
Для нас все равны, и я благодарю всех за то, что вы с нами. Для большинства жителей Республики Молдова Наша Партия – последняя надежда. А перезагрузка Нашей Партии означает воссоздание чистой силы, которая никогда не была у власти и которая сегодня является единственной реальной альтернативой.
or. Ocnița, str. 50 de Ani ai Biruinței, nr. 5A; Tel.: 0 (76) 770 780
#PartidulNostru#НашаПартия#DoarPentruMoldova
Подробнее...
Primarul orașului Cantemir din partea Partidului Nostru, Roman Ciubaciuc: „În oraș vor începe în curând lucrările de reparație a mai multor străzi”
Primarul orașului Cantemir, Roman Ciubaciuc, ales din partea Partidului Nostru, a anunțat despre lansarea unui proiect de reparație a mai multor străzi din localitate. Primăria a lansat deja licitația pentru selectarea antreprenorilor. Lucrările sunt finanțate din bugetul de stat și bugetul local. Detalii…
---
Примар Кантемира от Нашей Партии Роман Чубачук: В городе скоро начнутся работы по ремонту ряда улиц
Избранный от Нашей Партии примар города Кантемир Роман Чубачук рассказал о запуске проекта по ремонту ряда городских транспортных артерий. Примария уже объявила тендер на поиск подрядчиков. Работы финансируются из государственного бюджета при долевом участии местных властей. Подробности по ссылке…
#PartidulNostru#НашаПартия#DoarPentruMoldova