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

Резултати

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

Търсене: #takedownccp

当前筛选 #takedownccp清除筛选
Hong Kong Democracy Movement

@hkdmovement · Post #7307 · 02.04.2024 г., 04:27

繼英美及新西蘭本周初譴責中國支持的黑客組織「APT31」多年間對海外發起數千次網絡攻擊後,比利時和芬蘭分別證實該組織對其發動網絡攻擊。評論認為,習近平擴張野心在現實和網絡世界同時推進,認為民主國家應採取更有力措施,包括阻止中國獲得有關技術。⁣ ⁣ 美國周一(25日)證實七名來自中國駭客組織的間諜對美國白宮、國會及批評北京的西方議員等進行了數千次網絡攻擊。周二(26日),芬蘭警方證實,與中國國家安全部有關的「APT31」黑客組織是 2021 年芬蘭議會遭網絡入侵事件的幕後黑手。芬蘭安全情報局也和國際合作伙伴開展了聯合調查,包括嚴重間諜活動、違反通信保密以及侵入芬蘭議會信息系統等,矛頭直指北京。⁣ #中國黑客#網絡攻擊#中共滲透#APT31#EvilCCP#TakeDownCCP 報導:自由亞洲粵語 @rfacantonese

香港人的蘋果

@appledailyhk26 · Post #55557 · 05.10.2023 г., 06:11

Dawut 的朋友和學生向《經濟學人》稱,她是一位「很少談政治的務實學者」,應該不會因學術研究而被定罪。因此,有些分析師認為, Dawut 被判重罪,反映出中國迫害維吾爾少數民族已經去到瘋狂的地步,即使是知名的建制人員及黨員也不放過。 不過,也有人持不同想法。挪威維吾爾人權組織創始人 Abduweli Ayup 向《經》表示,Dawut的高調可能是她成為目標的原因,中國官員可能想用她來「殺一儆百」,警告所有維吾爾人不要高調行事,妄想逃過國家的監控。 無論如何,Dawut 被判終身,表明了中共對少數族裔的窮追猛打,已經到歇斯底里的地步,而且意義非別尋常。對話基金會創始人兼主席 John Kamm 便向《紐時》指,「中國政府打擊她,實際上是打擊整個維吾爾文化的核心。」 全文: https://www.instagram.com/p/Cx-jsiiPE-e/ Source: @hkreaderxwriter #維吾爾族#新疆#EvilCCP#TakeDownCCP#再教育營#集中營#FreeUyghurs#FreeTibet

Hong Kong Democracy Movement

@hkdmovement · Post #7916 · 04.12.2024 г., 05:56

立陶宛週五宣布驅逐三名中國大使館人員,限一周內離境,並向北京發送外交照會。自2021年立陶宛允許台灣設立代表處以來,兩國關係已惡化,最近因中國船隻涉嫌破壞波羅的海兩條海底光纜而進一步緊張。 立陶宛外交部表示,驅逐原因為「違反《維也納外交關係公約》及國際法」。立陶宛將與瑞典和芬蘭成立聯合調查小組,調查光纜被切斷事件。中共中國始終尋求干涉他國事務,甚至摧毀其他國家。 #立陶宛#波羅的海#海底電纜#russia#evilCCP#NeverTrustCCP#TakeDownCCP On Friday, Lithuania announced the expulsion of three Chinese embassy staff, ordering them to leave within a week and sending a diplomatic note to Beijing. Tensions have worsened since Lithuania allowed Taiwan to establish a representative office in 2021, and recently over allegations of Chinese ships sabotaging two undersea cables in the Baltic Sea. The Lithuanian Foreign Ministry cited "violations of the Vienna Convention and international law" as the reason for the expulsion. Lithuania will also form a joint investigation team with Sweden and Finland to probe the cable damage. Communist China is always seeking opportunities to interfere in other countries, even destroying them. #Lithuania#BalticSea#UnderseaCables#Russia#EvilCCP#NeverTrustCCP#TakeDownCCP