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

Резултати

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

Търсене: #argon

当前筛选 #argon清除筛选
Pi&N1交流群通知频道

@newpin1channel · Post #418 · 10.09.2020 г., 05:49

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.7.0+0.7 时间:2020/09/10 💢 主題双插件下载 https://t.me/PIN1Group_FW/289 ※ 主题插件(必要): - luci-theme-argon_1.7.0-20200909_all.ipk ※ 配置面板化插件(按需安装 - 图三) - luci-app-argon-config_0.7-beta_all.ipk 💢 主要功能 - 配置面板化插件 (argon-config.ipk) - 支持配置主题色彩﹑亮色模式﹑暗色模式﹑强制亮/暗模式 - 支持配置登陆界面背景图﹑毛玻璃化﹑透明化 - 默认每日Bing背景图 - 支持自传背景文件: jpg png gif mp4 图片和视频同时随机 - 视频背景支持音量开关(自行点击),默认静音模式 [Chrome播放政策] 💢 相关资料 ※ 单插件設置教程:https://t.me/PIN1Group_FW/224 ※ 视频素材总合: https://t.me/PIN1Group_FW/272 ※ 图片素材总合: https://t.me/PIN1Group_FW/290 💢 历史版本 【Github】:https://github.com/jerrykuku/luci-theme-argon/releases 【1.7.0】 修复暗色模式下部分颜色错误. 当随系统编译时,将自动设置为默认主题. 修改文件结构,以适应luci-app-argon-config 【1.6.9】: https://t.me/PIN1Group_FW/255 【1.6.6】: https://t.me/PIN1Group_FW/221 【1.6.5】: https://t.me/PIN1Group_FW/201 【1.6.4】: https://t.me/PIN1Group_FW/178 【1.6.3】: https://t.me/PIN1Group_FW/165 【1.6.1】: https://t.me/PIN1Group_FW/137

Pi&N1交流群通知频道

@newpin1channel · Post #410 · 24.08.2020 г., 09:22

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.6.9 时间:2020/08/21 教程:https://t.me/PIN1Group_FW/224 【1.6.9】 下载:https://t.me/PIN1Group_FW/255 修复了在某些手机下图片背景第一次加载不能显示的问题。 修改系统和内核日志的背景颜色为白色。 取消 luasocket 的依赖,无需再担心依赖问题 【1.6.6】 预览图:https://t.me/PIN1Group_FW/221 下载:https://t.me/PIN1Group_FW/225 - 背景文件策略调整: jpg png gif mp4 图片和视频同时随机。 - 视频背景添加了音量开关,喜欢带声音的可以自行点击开启,默认静音模式 - 修复了[手机模式] 登录页面出现键盘时,文字覆盖按钮的问题 - 修正了[暗黑模式] 下拉选项的背景颜色,同时修改了滚动条样式 - jquery 更新到 v3.5.1 目前: [Chrome自动播放政策] 自动播放只能默认消音 ,必须自己点击开启。 【A.6.5】 更新:https://t.me/PIN1Group_FW/201 【1.6.4】 更新:https://t.me/PIN1Group_FW/178 【1.6.3 】 更新:https://t.me/PIN1Group_FW/165 【 1.6.1 】 更新:https://t.me/PIN1Group_FW/137 luci-theme-argon主题 https://github.com/jerrykuku/luci-theme-argon/releases

Pi&N1交流群通知频道

@newpin1channel · Post #408 · 15.08.2020 г., 15:38

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.6.6 时间:2020/08/16 教程:https://t.me/PIN1Group_FW/224 【1.6.6】 预览图:https://t.me/PIN1Group_FW/221 下载:https://t.me/PIN1Group_FW/225 - 背景文件策略调整: jpg png gif mp4 图片和视频同时随机。 - 视频背景添加了音量开关,喜欢带声音的可以自行点击开启,默认静音模式 - 修复了[手机模式] 登录页面出现键盘时,文字覆盖按钮的问题 - 修正了[暗黑模式] 下拉选项的背景颜色,同时修改了滚动条样式 - jquery 更新到 v3.5.1 目前: [Chrome自动播放政策] 自动播放只能默认消音 ,必须自己点击开启。 【A.6.5】 更新:https://t.me/PIN1Group_FW/201 【1.6.4】 更新:https://t.me/PIN1Group_FW/178 【1.6.3 】 更新:https://t.me/PIN1Group_FW/165 【 1.6.1 】 更新:https://t.me/PIN1Group_FW/137 luci-theme-argon主题 https://github.com/jerrykuku/luci-theme-argon/releases

Pi&N1交流群通知频道

@newpin1channel · Post #398 · 27.07.2020 г., 14:56

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.6.4 时间:2020/07/27 本次更新又带来了好玩的东西,详情如下 【1.6.4】 预览图:https://t.me/PIN1Group_FW/178 下载:https://t.me/PIN1Group_FW/184 1. 修正一些文字的颜色 2. 修改底部argon版本的获取方式,自动根据ipk版本显示 彩蛋 : ⚠️注意: 彩蛋功能只供ssh自行玩耍,请自行研究。 3.增加可自定义登录背景功能 (日常換女友): 启用: 请自行将文件上传到/www/luci-static/argon/background 目录下,支持jpg png gif格式图片 主题显示自定义背景优先于bing背景,多个背景图片为随机显示 群主的路人女主背景包: https://t.me/PIN1Group/1190861 4. 增加了可以强制锁定暗色模式的功能 启用: 请登录 ssh 输入:touch /etc/dark 即可开启 关闭: 请输入:rm -rf /etc/dark 关闭后颜色模式为跟随系统 5. 修改登陸頁面透明度﹑毛玻璃效果 https://t.me/PIN1Group_FW/188 【1.6.3 】 预览图:https://t.me/PIN1Group_FW/165 下载:https://t.me/PIN1Group_FW/171 1. 登录界面毛玻璃效果 【 1.6.1 】 预览图:https://t.me/PIN1Group_FW/137 下载:https://t.me/PIN1Group_FW/143 1. 新的登录主题,请求背景图片从bing.com,自动改变日常生活。 2. 新主题图标 3. 添加更多的菜单类别图标 4. 修复字体大小和填充边距 5. 重组CSS文件 luci-theme-argon主題 https://github.com/jerrykuku/luci-theme-argon/releases

Pi&N1交流群通知频道

@newpin1channel · Post #392 · 25.07.2020 г., 16:37

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.6.3 时间:2020/07/26 更新日志: 1.6.3 预览图:https://t.me/PIN1Group_FW/165 下载:https://t.me/PIN1Group_FW/171 登录界面毛玻璃效果 小修復 1.6.2 小修復 下载:https://t.me/PIN1Group_FW/157 1.6.1 预览图:https://t.me/PIN1Group_FW/137 下载:https://t.me/PIN1Group_FW/143 新的登录主题,请求背景图片从bing.com,自动改变日常生活。 新主题图标 添加更多的菜单类别图标 修复字体大小和填充边距 重组CSS文件 github https://github.com/jerrykuku/luci-theme-argon luci-theme-argon主題 https://github.com/jerrykuku/luci-theme-argon/releases

Pi&N1交流群通知频道

@newpin1channel · Post #390 · 24.07.2020 г., 07:08

作者:#老竭力#jerry#主群 硬件:#硬件 系统:#Openwrt#github#theme#ipk#argon 版本:1.6.2 时间:2020/07/25 1.6.2 小修復 1.6.1更新日志: 新的登录主题,请求背景图片从bing.com,自动改变日常生活。 新主题图标 添加更多的菜单类别图标 修复字体大小和填充边距 重组CSS文件 预览图: https://t.me/PIN1Group_FW/137 github https://github.com/jerrykuku/luci-theme-argon luci-theme-argon主題 https://github.com/jerrykuku/luci-theme-argon/releases