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

Резултати

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

Търсене: #examination

当前筛选 #examination清除筛选

河北省三河市的防灾科技学院距北京CBD仅三十公里左右,门前有通往北京CBD(大北窑南公交站附近)的北京公交818路,非高峰期车程1小时(含进京检查),高峰期车程1.5~2小时。费用忘了,很低,几元钱。全天都有公交车,间隔不长。 仅作为地理知识介绍,不代表对这所学校学术、报考、就业等方面的认同与推荐。 #Examination#Original

未来出国可能受阻的学校,如有出国打算,可在填报志愿时结合此名单考虑。 美国实体制裁清单:北京航空航天大学,中国人民大学,北京理工大学,北京邮电大学,国防科技大学,湖南大学,南京航空航天大学,南京理工大学,西安交通大学,西北工业大学,哈尔滨工业大学,哈尔滨工程大学,四川大学,电子科技大学,同济大学,天津大学,南昌大学。 国防七子:哈尔滨工业大学,北京航空航天大学,北京理工大学,西北工业大学,哈尔滨工程大学,南京理工大学,南京航空航天大学 军工六校:国防科学技术大学,哈尔滨工程大学,南京理工大学,中国人民解放军装甲兵工程学院,中国人民解放军理工大学国防工程学院,中国人民解放军防化指挥工程学院 兵工七子:北京理工大学,南京理工大学,中北大学,长春理工大学,沈阳理工大学,西安工业大学,重庆理工大学 #Examination#Politics

高考前可以把要带的物品列一个检查表,出门前逐项检查避免忘记,尤其是离家前往考点附近酒店住的考生。 我每种笔带两根,互为备份,包括画图的铅笔,涂答题卡铅笔,黑笔。铅笔可以两头都削尖,提供更多的备份。 住酒店带上耳塞,可阻挡噪音保证睡眠。 设好闹钟、最好使用多个闹钟。上下午都有考试时,除了起床闹钟外,还可以设个提醒自己下午去参加考试的闹钟。 #Examination#Experience#Learning

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

个人观点:报志愿前请不要轻易相信老师说的专业无所谓。老师可能会说,学校才是最重要的,专业无所谓。听起来像是烧锅炉的专业比如热能与动力工程其实前途也很好。 老师之前可能从来没骗过你,所以你可能会以为这一次也是在对你说实话。很遗憾,这可能是老师唯一一次骗你,即使是大城市重点学校的高级教师也会这样做。最好的情况下,也只是请一个志愿辅导专家代替老师说出这些话,老师在一边默默看着。 在升学率指标的驱动下,老师不得不这么做,以便让升学的数字更好看,牺牲学生选择理想专业的机会增加考入好学校的人数。 我对迫不得已的老师个人可以宽容和理解。但我对这种报志愿方式坚决反对。希望大家也看清楚这句谎话。 我明白这很难接受。面对认真培养和指导你几年的好老师,确实很难相信老师会在这种关键的时候撒谎。 但这些专业的学生,从这些专业毕业几年的职场新人乃至于在这些专业领域工作的中年人都在说选专业比选学校更重要,用亲身经历印证了差专业的负面影响远大于好学校的正面影响。如果穿越回去填报志愿,他们都说会选择专业优先的。 以上是我对报志愿这件事的一些了解。我自己就是按照这个原则报志愿的,专业比学校重要。就我自己目前掌握的情况分析,这是我能想到的最优解了,无论将来在国内工作还是出国应该都是专业更重要,决定工作的行业。 我能力和眼界有限,也许有认识错误的地方,欢迎大佬指正。 发这篇内容前心情很复杂,担心说错话误导别人,影响别人填报志愿。可要是不发,又担心漏了一些正确的话没发出来,错过帮别人忙的机会。 #Comment#Examination#Experience#Original#Thought

个人观点:报志愿前请不要轻易相信老师说的专业无所谓。老师可能会说,学校才是最重要的,专业无所谓。听起来像是烧锅炉的专业比如热能与动力工程其实前途也很好。 老师之前可能从来没骗过你,所以你可能会以为这一次也是在对你说实话。很遗憾,这可能是老师唯一一次骗你,即使是大城市重点学校的高级教师也会这样做。最好的情况下,也只是请一个志愿辅导专家代替老师说出这些话,老师在一边默默看着。 在升学率指标的驱动下,老师不得不这么做,以便让升学的数字更好看,牺牲学生选择理想专业的机会增加考入好学校的人数。 我对迫不得已的老师个人可以宽容和理解。但我对这种报志愿方式坚决反对。希望大家也看清楚这句谎话。 我明白这很难接受。面对认真培养和指导你几年的好老师,确实很难相信老师会在这种关键的时候撒谎。 但这些专业的学生,从这些专业毕业几年的职场新人乃至于在这些专业领域工作的中年人都在说选专业比选学校更重要,用亲身经历印证了差专业的负面影响远大于好学校的正面影响。如果穿越回去填报志愿,他们都说会选择专业优先的。 以上是我对报志愿这件事的一些了解。我自己就是按照这个原则报志愿的,专业比学校重要。就我自己目前掌握的情况分析,这是我能想到的最优解了,无论将来在国内工作还是出国应该都是专业更重要,决定工作的行业。 我能力和眼界有限,也许有认识错误的地方,欢迎大佬指正。 发这篇内容前心情很复杂,担心说错话误导别人,影响别人填报志愿。可要是不发,又担心漏了一些正确的话没发出来,错过帮别人忙的机会。 #Comment#Examination#Experience#Original#Thought

关于高考填报志愿专业辨别的一些想法 附录1 哈尔滨工业大学 2016级计算机类本科生培养方案 计算机类学生需要掌握的必要的知识 http://www.cs.hit.edu.cn/_upload/article/files/8f/53/a5532b7e482c90692a0a0340de30/339ae4c3-2847-4b91-b04c-12a83576ed30.pdf 计算机类学生需要掌握的必要的知识如下: 1. 数学与自然科学基础。包括微积分、代数与几何、概率论与数理统计等数学基础知识, 以及物理、生命科学等自然科学基础知识。 2. 人文社会科学类知识。包括人文与社会、经济与管理、科学与工程等方面的基础知识。 3. 大类专业基础知识:(1)离散结构,(2)算法与复杂性,(3)计算机组织与结构,(4) 操作系统,(5)程序设计语言,(6)系统基础,(7)软件开发基础,(8)软件工程,(9)网 络与通信,(10)信息管理,(11)人工智能,(12)信息保障与安全,(13)社会问题与专业 实践等知识领域。 4. 专业核心知识:需要在以下若干方向中选择一个方向进行深入学习,覆盖必要的知识。 A1.计算机工程:(1)计算机组织与结构,(2)操作系统。 A2.计算机科学:(1)计算建模,(2)高级算法。 A3.并行与分布式:(1)并行与分布式系统,(2)并行与分布式算法。 B1.自然语言处理:(1)自然语言处理,(2)信息检索。 B2.视听觉信息处理:(1)视听觉信息编码与处理,(2)模式识别。 B3.数据科学与大数据技术:(1)数据分析与数据挖掘,(2)大数据计算系统,(3)大数 据计算算法。 C1.信息安全:(1)密码学,(2)信息系统安全,(3)网络安全,(4)信息内容安全(含 多媒体安全),(5)逆向分析,(6)云安全,(7)舆情分析。 D1.生物信息学:(1)DNA 与 RNA 序列分析,(2)基因预测与基因组注释,(3)高通量 数据分析方法,(4)蛋白质组信息学,(5)生物系统新信息网络,(6)基因进化与系统发育, (7)分子进化理论等,以及(8)生物化学,(9)遗传学,(10)分子生物学,(11)细胞生 物学等。 E1.物联网工程:(1)感知与驱动,(2)混合系统,(3)反馈控制理论,(4)实时系统,4 (5)无线传感器网络,(6)信息物理系统结构与平台,(7)物联网智能信息处理,(8)信息 物理系统可靠性分析与验证等。 #ComputerScience#Experience#Examination#Learning#Original#Thought

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