自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序之心

技术分享与总结

  • 博客(29)
  • 收藏
  • 关注

原创 开工大吉,重温下架构设计六大原则

今天是正月初七,我还请假在家,刚刚读了《银河帝国》,读到马洛解决了谢顿危机,成为继哈里谢顿、赛佛哈定之后的第三位英雄。春节过得还不错,休息了、陪伴家人了、学习了、思考了。重温下架构设计六大原则。1. 单一职责原则。一个类只能有单一的职责,不同的类各司其职。如果一个类有两个及以上的职责,说明设计有问题,对业务、架构、模型、扩展的认识有盲区。与 DDD 思想类似,设计代码必须有确定性、有明确的边界,扩展一下就是 DDD 中的子域划分。2. 开放封闭原则。对扩展开放,对修改封闭。这里可以有两种实现

2022-02-07 12:45:48 578

原创 虎年工作的 3 点战略思考

春节假期快要结束了,虎年的工作即将开始,预祝大家虎虎生威、万事如意。春节假期足够长,正好可以学习和思考。未来一年的规划如下,欢迎讨论。以实践为中心主席在《实践论》中明确指出,认识的过程,开始于感性的认识,深化于理性的辩证。理性认识依赖于感性认识,感性认识有待于发展到理性认识,这就是辩证唯物论的认识论。通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以

2022-02-06 13:17:50 160

原创 AlphaCode能写代码了,人工智能会取代人吗

这几天 AlphaCode 写的算法击败了 Codeforces 46% 的参赛者,DeepMind 团队又上头条了。记得在 2018 年,我对于人工智能还处在狂热的推崇之中,就差找个机会转 AI 了。现在看到这样的新闻却不那么盲目了,我觉得人工智能距离取代人还有几个世纪的距离。过去我对于”机器取代人“有一种蜜汁自信,总觉得随着科技的发展,凡是重复的工作都可以让机器去做。但是从各个大厂开始推广”智障客服“开始,我有点怀疑了。人工智能不能完全取代人”智障客服“一经推出,大厂就开始缩减客服人数,与此

2022-02-06 13:14:46 683

原创 低代码平台使用两月真实感受

近几年低代码着实火了一把,各种平台层出不穷,网上大把的帖子说着上了低代码半数人都要被辞退了(自媒体贩卖焦虑太溜了)。有幸在前端同学的极力胁迫,哦不,推荐下,也在业务中使用低代码平台搭建了几个页面。总体来看,差强人意。“预设”悖论“预设”是德国哲学家、现代逻辑奠基人弗雷格于1892年提出的概念,指的是说话者在说出某个话语或句子时所做的假设,即说话者为保证句子或语段的合适性而必须满足的前提。“预设”悖论并不是低代码独有的,所有的架构设计都会遇到这个问题。无论是分层架构,还是六边形架构,都在试图用

2022-02-06 13:13:28 854

原创 爬虫写得好,牢饭吃得早

爬虫在互联网时代并不稀奇,面对海量数据,人工获取信息的效率低、时效性差,为了提升体验很多公司都会开发爬虫系统。但是,爬虫写得好,牢饭吃得早。来自 2018 年的公开案例:某公司 2017 年转型做互联网科技公司,主营业务是“助贷”,需要经常访问政府居住证网站,查询房产地址、房屋编码和学区房的使用情况。公司产品组经讨论后建议用爬虫自动查询相关数据。2017年12月,CTO 安排新入职的程序员负责这个项目,要求他研发一个自动定时抓取的爬虫。2018年1月,项目经理给程序员一个抓取数据的程序源代

2022-02-06 13:10:10 2205

原创 又到黄金季节,该跳槽吗?怎么跳?

作者:丁仪来源:https://chengxuzhixin.com/blog/post/you-dao-huang-jin-ji-jie-gai-tiao-cao-ma-zen-me-tiao.html春节已经远去,又到了金三银四,朋友圈开始出现各种招聘广告,干饭人们又开始躁动了。又一年过去了,要跳槽吗?我们需要有规划。要不要跳槽,首先考虑下哪些东西比工资更重要。跳槽的确有助于提升薪酬水平,但不适当的跳槽其实会影响长期发展。很多人缺乏明确的职业规划,从毕业起就随波逐流,...

2021-03-17 22:27:39 95

原创 分布式事务 6 个技术方案

作者:丁仪 来源:https://chengxuzhixin.com/blog/post/fen-bu-shi-shi-wu-6-ge-ji-shu-fang-an.html现代大型互联网系统已经告别了单机时代,微服务、负载均衡、分布式已经成为主流。在分布式系统中,对于数据库的关键操作,也需要使用事务来保证业务结果,如银行转账、交易扣款等。单机的事务可以通过数据库事务或 Spring 事务来实现,分布式系统则更复杂,涉及多机房、多数据源。分布式事务也需要满足事务的基本特性,包括原子性...

2021-03-17 22:24:50 276 1

原创 15 个 MyBatis 技巧,赶紧收藏吧!

作者:丁仪来源:https://chengxuzhixin.com/blog/post/15-ge-MyBatis-ji-qiao-gan-jin-shou-cang-ba.htmlMyBatis 作为一款 ORM 框架,在行业内有广泛的应用。mapper xml 的配置有一些技巧,本文整理一下,方便查阅。模糊查询MySQL 模糊查询一般是使用 like 条件,我们经常使用传入的变量作为 like 的条件。在 MyBatis 里面,like 使用变量需要用到 ${} 或者 c...

2021-03-17 22:19:28 413

原创 你的工资被倒挂了吗

作者:丁仪来源:https://chengxuzhixin.com/blog/post/ni-de-gong-zi-bei-dao-gua-liao-ma.html听说 PDD 给应届生的工资非常之高,有些快赶上 P7 base 了。聊起工资问题,发现很多人都经历过薪资倒挂,尤其是大幅降薪那一年入职的同学。薪资倒挂是人力资源管理薪酬的一种状态。大家通常遇到的薪资倒挂主要有三种:新员工薪酬超过老员工,一线员工薪酬超过管理层,或者下属的薪酬超过主管。正常来说,老员工、主管、管理层经验丰富,..

2021-03-17 22:13:11 233

原创 终于知道 Java agent 怎么重写字节码了

作者:丁仪 来源:https://chengxuzhixin.com/blog/post/Javaagent-zen-me-zhong-xie-zi-jie-ma.htmlJava 自从 JDK 1.5 开始提供了 Instrument 机制,允许使用单独的 agent 获取 JVM 信息、动态修改 class 字节码,可以实现无侵入的运行时 AOP。使用 Java agent 可以在 JVM 启动前(JDK 1.5+)或启动后(JDK 1.6+)修改字节码,实现运行时数据的采集和回放(如 doom.

2021-03-17 22:11:33 478

原创 每天的工作,你腻了吗?

作者:丁仪来源:https://chengxuzhixin.com/blog/post/mei-tian-de-gong-zuo-ni-ni-le-ma.html你是否觉得工作很疲惫,有种疲于应付的感觉,让自己兴奋的东西越来越少,对工作渐渐失去控制感,甚至怀疑职业选择是否正确,对工作内容感到厌烦?美国著名心理学家贝弗利•波特认为,对工作的厌倦,除了生理因素外,心理因素不可忽视,由于工作过程中承受压力而导致的对工作的厌倦情绪,就是职业倦怠。你倦怠了吗?不妨做下这份问卷,对每个问题进...

2021-03-17 22:03:43 117

原创 10 分钟轻松学会 Jackson 反序列化自动适配子类

作者:丁仪来源:https://chengxuzhixin.com/blog/post/Jackson-fan-xu-lie-hua-zi-dong-shi-pei-zi-lei.htmljson 格式使用非常方便,通常情况下我们反序列化的时候需要指定具体类型。如果遇到继承类型可能会解析失败。今天总结下基于类型扩展的子类自动适配,能够实现反序列化时按需适配子类。比如定义 Model 类型,仅有字段 key,类型为 String。默认情况下,json 里面只能配置 Model 已有...

2021-03-17 21:59:55 301 1

原创 SpringMVC异步处理的 5 种方式

作者:丁仪来源:https://chengxuzhixin.com/blog/post/SpringMVC-yi-bu-chu-li-de-5-zhong-fang-shi.html前段时间研究了下 diamond 的原理,其中有个重要的知识点是长连接的实现,用到了 servlet 的异步处理。异步处理最大的好处是可以提高并发量,不阻塞当前线程。其实 Spring MVC 也支持了异步处理,本文记录下相关的技术点。异步处理 demo如果要启用异步返回,需要开启 @Enable...

2021-03-02 08:52:15 534

原创 Linux Cron 定时任务

作者:丁仪来源:https://chengxuzhixin.com/blog/post/LinuxCron-ding-shi-ren-wu.html定时任务是经常被用到的,比如系统备份、数据导出等。在 Linux 中,系统提供了 cron 服务,可以很方便地实现定时执行。本文记录了 cron 的使用方法。基本概念cron 有 crond 和 crontab 两个概念。crond 是后台守护进程的名称,用来实际执行脚本,它在系统中是一直运行的。crontab 是一个工具...

2021-02-26 09:22:07 268

原创 人类简史、软件架构和中台

作者:丁仪来源:https://chengxuzhixin.com/blog/post/ren-lei-jian-shi-ruan-jian-jia-gou-he-zhong-tai.html最近在阅读尤瓦尔的《人类简史》,这本书已经买了很久却基本没看。近两年又有了新的感悟,恰逢春节有空翻阅,有些新的思考。最初从非洲走向世界的人种并没有延续下来,后期离开非洲的智人取代了所有人种成为当前人类的祖先。智人能够比其他人种更牛逼,靠的是想象力,能够理解和描述仅存在于思想中的东西。实物的描述、琐碎的八.

2021-02-22 19:13:33 182 1

原创 限流算法探秘

作者:丁仪来源:https://chengxuzhixin.com/blog/post/xian-liu-suan-fa-tan-mi.html在资源有限的情况下,遇到突发流量(如双十一)或系统 RT 剧增,为了保证系统不被拖垮引起更大规模的雪崩,必须进行限流。也就是说限流是系统的自我保护。限流本质上是根据系统处理能力,限制单位时间内处理的请求数量。滑动窗口这里的窗口是一个时间窗口,比如把一分钟划分为 6 个窗口,则每个窗口的时间范围是 10 秒。通过移动窗口,统计窗口期内流量,可以实现窗口期

2021-02-20 09:19:22 149

原创 没有共情能力的程序员不是好产品经理

作者:丁仪来源:https://chengxuzhixin.com/blog/post/cheng-xu-yuan-gong-qing-neng-li.html最近看到有些用户的使用情况和设想的不一样,本以为轻松理解的文案竟然也有客诉。有些用户习惯没有去改变,以为用户都很容易使用,结果客服还是收到了咨询。网上关于双十一的讨论又再次热闹起来,某些人终于意识到消费者的想法和他们不一样了。作为程序员,也需要理解用户,换位思考,重新审视自己的工作。站在开发者的角度,有时候无法理解用户的行为,本..

2020-12-02 12:39:17 115

原创 怀才不遇?程序员必须掌握的软技能

作者:丁仪来源:https://chengxuzhixin.com/blog/post/cheng_xu_yuan_bi_xu_zhang_wo_de_ruan_ji_nen.html我们是靠技术吃饭的,同时也需要掌握一些软技能。在《能力陷阱》一书中,作者也提出,越是做擅长的事情越容易在这个方面提升自己,但是会忽略其他同样重要的能力,从而走向失败。如果总觉得自己怀才不遇,不妨想一想是不是缺失了一些重要的软技能呢?表达和展示自己现在不是“酒香不怕巷子深”的时代了,你拥有的能力和...

2020-11-27 18:25:26 128

原创 为什么要鼓励重复造轮子

作者:丁仪来源:https://chengxuzhixin.com/blog/post/wei_shi_me_yao_gu_li_zhong_fu_zao_lun_zi.html“不要重复造轮子”恐怕是仅次于“php是最好的语言”之后最流行的话了。各种论坛,各种文章,都在说不要重复造轮子,那我们到底造不造呢?回想这几年的工作经历,个人或团队重复造的轮子也有几个,整体上还是比较认可这种工作方式的。在适当的时机造轮子有时候也是最佳选择。不重复造轮子的理由,主要就是通过复用减少工作量,而且开...

2020-11-25 18:55:36 430 2

原创 mysql 重要日志文件总结

作者:丁仪来源:https://chengxuzhixin.com/blog/post/mysql_zhong_yao_ri_zhi_wen_jian_zong_jie.html日志是所有应用的重要数据,MySQL 也有错误日志、查询日志、慢查询日志、事务日志等。本文简单总结下各种日志,以备查阅。二进制日志 binlog二进制日志 binlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。使用任何存储引擎的 mysql 数据库都会记录 binlog 日志.

2020-11-23 19:17:26 98

原创 程序员是青春饭吗?30岁后的发展方向和突破

作者:丁仪来源:https://chengxuzhixin.com/blog/post/30_sui_hou_de_fa_zhan_fang_xiang_he_tu_po.html前些年,有人说程序员只能干到 30,后来大家把年龄提到 35,最近好像又有提到 40 的迹象。最近 Python 创始人 Guido 入职微软了。Guido 在 1989 年创造了 Python,无论从哪个角度看,都是绝对的高龄程序员了。程序员是青春饭吗很多人都说写代码最多到 35 岁,妥妥的青春饭...

2020-11-20 22:52:27 1827

原创 为什么十年寒窗,比不上几代人的努力

作者:丁仪来源:https://chengxuzhixin.com/blog/post/shi_nian_han_chuang_bi_bu_shang_ji_dai_ren_de_nu_li.html网上有句很火的话“靠几代人积累的背景和财富,凭什么不如你寒窗苦读几十年”。其实多年前,一位银行从业者也写过一篇很火的文章《寒门再难出贵子》。在英国也有一部堪称伟大的纪录片《UP》系列,也反映了社会阶层固化。为什么10年寒窗,比不上几代人的努力?可能大多数时候都把原因归结于金钱和权力。可现实..

2020-11-18 19:23:25 456 4

原创 被黑客攻击了,登录流程要怎么做才安全

作者:丁仪来源:https://chengxuzhixin.com/blog/post/deng_lu_liu_cheng_zen_me_zuo_cai_an_quan.html用户登录是系统中最重要的功能之一,登录成功就能拥有系统的相关使用权限。所以设计一个安全的登录流程是十分必要的。保护用户账号不被黑客窃取,既是在保护用户的基本利益,更是在保护网站的信誉和业务发展。流程安全性安全的登录流程必须使用HTTPS协议。HTTPS 协议具有较高的安全性,可以保证数据传输过程的...

2020-11-16 18:32:44 401

原创 天天写业务代码的程序员,怎么成为技术大牛

作者:程序之心丁仪来源:https://chengxuzhixin.com/blog/post/zen_me_cheng_wei_ji_shu_da_niu.html天天写业务代码,感觉没长进,技术深度止步不前,感觉很烦躁。很多人都在问,怎么样才能成为技术大牛?机会总是留给有准备的人,还是有一些方法可以帮助我们在工作中提升技术水平的。看优秀源码并模仿《黑客与画家》里说到,画家学画必须要临摹,从大师的作品中进行学习,美术博物馆便是他们最好的学校。而黑客则是通过观看优秀的程序来学习编程..

2020-11-13 18:31:57 380

原创 走向卓越,领域驱动设计的思维方式

作者:程序之心丁仪来源:https://chengxuzhixin.com/blog/post/ling_yu_qu_dong_she_ji_de_si_wei_fang_shi.html软件系统是以特定的代码解决现实世界的复杂问题。软件开发的最大困难就是应对复杂度,复杂度可能来源于各个方面。领域驱动设计的概念是 2004 年 Evic Evans 提出的 Domain-Driven Design,简称 DDD。随着软件技术发展,大家逐渐意识到领域驱动设计的重要性。领域驱动设计是一套...

2020-11-11 18:29:16 141 1

原创 老旧系统重构技巧,轻松搞定遗留代码

作者:丁仪来源:https://chengxuzhixin.com/blog/post/xi_tong_zhong_gou_ji_qiao_gao_ding_yi_liu_dai_ma.html前几天偶然看到一位网友发的内容,说是老系统改了一行代码就崩溃了,着实令人头秃。越是成功的公司,越是有大堆的老系统和无法统计的遗留代码,尤其是基础服务相关的代码,那简直是按下葫芦浮起瓢的现实版本。创业公司倒是好一点,没有历史包袱。我们也经常重构老旧代码,不为别的,就是怕放太久发霉。恰好最近也在做系统重构,总.

2020-11-09 18:19:22 619 1

原创 工作还好找吗?面试官的建议——阿里篇

作者:程序之心丁仪来源:https://chengxuzhixin.com/blog/post/mian_shi_guan_de_jian_yi_a_li_pian.html前段时间面试了一个候选人,感觉挺不错的。忽然想起了自己当时来面试的情景,那时候好像也就是稍微好一点的水平。经过阿里的摸爬滚打,如今作为面试官参与面试,得以换了一个角度看自己看对方,也隐约体会到自己当初为什么能通过面试,今天做个总结,让你也能知道面试者在思考些什么,助力你的面试事半功倍。面试准备要充分无论什...

2020-11-06 18:07:31 152

原创 被老程序员压榨怎么办?我不想辞职

作者:程序之心丁仪来源:https://chengxuzhixin.com/blog/post/bei_lao_cheng_xu_yuan_ya_zha_zen_me_ban.html有同学在知乎问了这个问题“被老程序员压榨怎么办?”,简单回答了下,今天深入讨论下这个问题,说下我的想法,欢迎留言讨论。原问题:9月份的时候,由前同事内推进去了某公司做安卓开发,工作的第一周内推我的同事就让我帮他做外包接私活。因为他内推我过来,我也不好意思拒绝。帮了他几天忙之后,他也没说给我做外包的费..

2020-11-04 18:09:17 361 2

原创 阿里P6晋升到P7是一个坎吗? P7 晋升总结

作者:程序之心丁仪来源:https://chengxuzhixin.com/blog/post/P6_jin_sheng_dao_P7_zong_jie.html公众号停更了挺长一段时间,首先说声抱歉,去年发生了很多事情,公众号的内容一直很难做到亲力亲为,当然也有一部分是自己的原因。还在的小伙伴,非常感谢,虽然你可能只是没有取消关注的习惯。恢复更新之后,先和大家聊聊晋升的事儿,很幸运,今年首次参加答辩就通过了 6 升 7 评审,顺利晋升到 P7。说来也在阿里三年了,努力了很多年,盼望了很多..

2020-11-02 18:25:46 7661 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除