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

Резултати

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

Търсене: #introduction

当前筛选 #introduction清除筛选

Вот такой интересный анонс мне в личку прислали 18+ НАСТОЯЩИЙ МАТЕРИАЛ (ИНФОРМАЦИЯ) ПРОИЗВЕДЕН, РАСПРОСТРАНЕН И (ИЛИ) НАПРАВЛЕН ИНОСТРАННЫМ АГЕНТОМ КАВКАЗСКИМ НИКОЛАЕМ ЮРЬЕВИЧЕМ ЛИБО КАСАЕТСЯ ДЕЯТЕЛЬНОСТИ ИНОСТРАННОГО АГЕНТА КАВКАЗСКОГО НИКОЛАЯ ЮРЬЕВИЧА Федивёрс: понятное погружение в федеративные сети Федивёрс — экосистема совместимых соцсетей. На первый взгляд она непривычна, но в оффлайне первые шаги делаются проще. 27 сентября (суббота), 17:00, метро Курская. Наш семинар по информационной безопасности это отличная возможность попробовать что-то действительно интересное. Присоединяйтесь к нам, чтобы узнать больше о Fediverse и его уникальных особенностях! О чём говорим и что делаем: Что такое Fediverse? Простые принципы работы и как сервисы “видят” друг друга. Как это устроено для пользователя? Посты, подписки, хэштеги и общение между разными серверами. Какие проблемы решает структура Fediverse? Альтернатива централизации: контроль над лентой, переносимость, отсутствие рекламы. Почему жизнь без алгоритмов — то, что стоит попробовать? Больше внимания к людям, меньше манипуляций и «скролл-ловушек». Модерация и свобода слова. Разные правила на разных серверах; как находить «свой» по ценностям. CW/предупреждения как норма заботы. Базовая безопасность в федеративных сетях. Приватность по шагам: профили, видимость, сообщения, «следы». Как сеть живёт без алгоритмов? Роль хэштегов, локальных сообществ и ручной подписки; как быстро стартовать. Практика прямо на месте (по желанию): 😍 Регистрация в Mastodon → первый #introduction (ваше знакомство/самопрезентация) → мы дадим список из 10 подписок, с ними одиночество и фальшивые новости вам не грозят. 👍 Delta Chat/Jami без SIM и номеров мобильника → тестовое сообщение и вход в закрытый чат. 🙈 После короткого выступление наших инфобезников будет возможность пообщаться 1-на-1 или в мини-группу до 6 чел, а может и взять онлайн консультацию, чтобы в личке настроить все по шагам. Важно: мы не обещаем, что приход лишён рисков. Несмотря на наши меры безопасности, прийти — это смелость. Мы встречаемся, чтобы усилить друг друга и получить инструменты, которые уменьшают уязвимость в сети с которыми каждый из нас уже сталкивается. 💌Для записи на мероприятие пиши на– @markgudman

没想到tg上居然有高三channel,很惊奇,想必大家都是来借这里释放一下长期积蓄的压力的,也算是个不错的调节心情的方法。我从某个链接(好像是什么强酸制弱酸)点进来无意中发现了这个宝地。按channel简介中的指导,可申请成为该channel的admin以便匿名发言。 经管理员的同意,分享一下channel及相关群的链接: https://t.me/NCEEdaily https://t.me/justforemmmwhat #Examination#Introduction#Learning#Telegram

新username启用,以前的太长了,新版简洁好记,充分体现内卷。 Myself: @IM996 以下旧username停用 Myself: @InvolutionMachine —————————————— 花絮:起名过程中发现以下username均为available状态,但觉得不合适,就没选这些。 IM211 IM985 IMTOP2 IMPKU IMCMU #Comment#English#Experience#Introduction#Telegram

大佬分享了一个telegram使用经验:tg上除了活人以外,还有一些spam bot/广告bot等恶意程序,要注意防范。这些bot可能会读取页面里的所有内容,然后沿着页面里的链接扩散到各种群里,带来很多困扰。 因此,要避免在公开场合发表包含大量群链接的文章(刚才我犯了这个错误),以免引来恶意程序危害群内秩序。自己建群时,也要考虑增加入群验证流程,把恶意程序挡在群外。 这个经验很有用,发出来分享一下。 #ComputerScience#Experience#Introduction#Technology#Telegram

补充:我不是留学生。上面不用汉字而用英语只是考虑到可读性。我的字烂,现实中很烂的汉字写在纸上能看清,但是在尺寸有限的手机屏幕或分辨率有限的电脑屏幕上就不容易看清了。考虑到网友的可读性,这里写英语看的清楚一些。 #Chinese#Design#English#Friend#Introduction

我不知道卷积(Convolution)是什么,还没学到那么高深的知识。id是内卷(Involution)与机(Machine)的组合。最初本来想用 [内卷计算机 Involution Computer] 这个名字的,发现中文名太长不方便称呼,中文改成内卷机了。之后又觉得英文名和中文名不对应,就把Computer改成Machine了。 (最近好像有人望文生义以为我的名字和卷积有关) #Comment#Chinese#English#Experience#Introduction#Mathematics#Telegram

用白色画着汉堡写着TGB的地方就是上文提到的卖加拿大特色食品Poutine的店了。吃饭吃出了偷渡的感觉,像是去港口钻进集装箱搭货轮偷渡加拿大一样。真正的偷渡客应该比我暖和一些,毕竟偷渡的时候在箱子里面,没有风。我吃饭是坐在外面吃的,寒风刺骨。 #Beijing#Canada#Experience#Feeling#Food#Introduction#Life

https://t.me/wallstreetbets Wall Street Bets 在Telegram上有个十万人大群,随时都有几十人参与语音聊天,欢迎来凑热闹。我出于练习英语听力的目的听了几分钟没听懂。迄今为止见过的语音聊天最热闹的群就是这里。 https://t.me/wallstreetbets 另外还有讨论加密货币的 https://t.me/satoshistreetbets https://t.me/wsbcryptochat (人少一些,没人语音) #BusinessStudies#English#Finance#Introduction#Language#Learning#Telegram

《上海交通大学生存手册》是我见过的信息量最大的关于大学生活具体内容的网站。充满了关于大学学习及前途的细节介绍,包括但不限于上海交大,每一页都是精华内容,没有灌水。我感觉我在步入大学之前,乃至报志愿之前有必要通读一遍这个手册。尽管我考不上上海交大,但是很多内容对其他学校也是有参考性的。向大家推荐一下。 (我阅历和鉴别能力有限,大佬神犇学长学姐们如果觉得我或该手册哪里说的不对,欢迎指正。) https://survivesjtu.gitbook.io/survivesjtumanual/ #Comment#ComputerScience#Experience#Introduction#Learning#Life#Reading#Website

12
ПредишнаСтр. 1 от 2Следваща