IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

开发者

共 800 篇文章

IT 2018-12-26 23:33:28 / 累计浏览 3,226

技术跃迁书单推荐

作者结合自身8年互联网行业经验,分享了一份带有个人色彩的技术书单,核心观点是:读书是形成体系化知识的关键,其作用无法被工作、看博客等碎片化学习所替代。 书单主要覆盖编程基础、设计与架构、网络三大领域。在编程基础部分,推荐了被誉为“一部神书”的《代码大全》,以及《重构:改善既有代码的设计》;设计架构部分,推荐了讲解深入浅出的《设计模式之禅》、免费的《Software Architecture Patterns》电子书以及经典著作《Software Architecture in Practice》;网络部分则推荐了入门读物《图解HTTP》与《图解TCP/IP》、案头常备的《HTTP权威指南》以及实践派的《Web性能权威指南》。 作者对每本书都给出了直白的个人评价,例如指出《代码大全》能帮读者“大概率超越80%的程序员”,而《重构》则“看起来厚,读起来很快,忘得更快”,更适合当作常备工具书。这份书单会不定期更新,为处于不同阶段的开发者提供了清晰、具体的阅读指引。

本机暂存
IT 2018-12-24 23:58:32 / 累计浏览 2,265

在命令行中步入黑客帝国

这篇文章从经典科幻电影《黑客帝国》上映二十周年的怀旧情怀出发,介绍了一个能让你在终端中体验“数字雨”视觉效果的命令行玩具——cmatrix。作者首先回顾了电影中那些令人印象深刻的代码流特效,随后将话题引向今天的主角。 cmatrix是一个开源工具,能够完美复刻电影中绿色字符如瀑布般滚落的场景。文章不仅说明了它在Fedora等系统上简单的安装方式(例如使用`dnf install cmatrix`),还直接展示了运行后的生动效果。对于喜爱折腾终端和怀旧的极客而言,这是一个既简单又有趣的视觉装饰。 作为“命令行玩具”系列的一篇,本文也延续了该系列的宗旨:在严肃的开发工作之余,探索终端里那些纯粹为了好玩和消遣的小项目。如果你正在寻找一种快速为单调的命令行界面注入一点电影感和趣味的方法,这个工具或许能给你带来片刻的灵感与放松。

本机暂存
IT 2018-09-20 21:53:32 / 累计浏览 2,181

四年努力,梦归阿里,和大家聊聊成长感悟

这篇文章讲述了技术博主“五月的仓颉”在工作四年后,成功加入阿里的经历与感悟。作者从毕业初期的迷茫讲起,分享了他如何通过系统性地研究招聘需求、制定学习计划,并在一年内高强度学习JDK源码、虚拟机等核心知识,最终实现目标的具体过程。 文中重点探讨了程序员成长的阶段划分。作者认为,工作五年是一个关键节点,此时应从扎实的个人基本功(如框架原理、JVM、分布式知识等)和项目实战能力(独立处理复杂业务、排查疑难问题、带领小团队)两方面同步提升。他特别强调“深度优先、广度次之”的学习策略,即在一到两个方向上深耕,远胜于广泛涉猎但浅尝辄止。 最后,作者指出进入大厂并非终点,而是更努力的新起点。全文没有空泛的鸡汤,而是用亲身经历和技术思考,为处于成长期的程序员提供了一份清晰的路线图和真诚的鼓励。

本机暂存
IT 2018-07-05 13:31:24 / 累计浏览 2,424

断点单步跟踪是一种低效的调试方法

作者从自己二十年的开发经历出发,对“断点单步跟踪”这一经典调试方法提出了一个颇具挑战性的观点:它本质上牺牲了效率来换取低门槛,是一种低效的方法。 文章详细阐述了这一观点的由来。作者从早期深度依赖图形化调试器,到转向跨平台开发后因工具不便而开始反思,逐渐转向以代码审查(Code Review)和日志输出为核心的调试范式。他认为,调试器容易让人陷入“眼前状态”的机械追踪,忽视了对程序所有可能执行路径的并行思考。相比之下,经过训练的大脑在阅读代码时,能更高效地分析所有分支并做剪枝,对程序的理解是全局且可回溯的。 文章进一步论证了这一方法的优势:它能倒逼开发者写出复杂度更低的代码,并能与日志输出形成完美配合。日志不仅提供了调试器所需的路径与状态信息,还具备更好的回溯能力和对并发系统的适应性。作者并未完全否定调试器,认为在分析崩溃现场等场景下它依然有用,但日常的 Bug 定位,理应建立在更深刻的代码理解之上。 这篇文章在开发者群体中引发了广泛共鸣,它不仅仅是在对比工具,更是在倡导一种通过提升自身心智模型来驾驭复杂度的工程哲学。

本机暂存
IT 2018-07-05 13:27:32 / 累计浏览 2,823

评审的艺术——谈谈现实中的代码评审

这篇讲的是代码评审的实践智慧——那些很难从课本学到、却在日常团队协作中至关重要的经验。作者从自身出发,认为代码创造本身就带有个性,评审时过度追求一致既不现实也容易扼杀活力。他坦言评审风格因人而异,有人温和、有人直接,而自己更倾向于对事不对事地坚持原则。 文章将评审问题分为三类:需求业务层面、代码结构层面和风格格式层面。前两者可能成为合并代码的阻碍,而后者通常不是关键。作者分享了一套沟通技巧:比如为风格问题标注“picky”以降低火药味;多用“也许”“可能”等虚拟语气缓和建议;或是用提问代替断言(如“为什么这里用3?”)。他还强调,评审应“先抓主干”,遇到满是问题的代码时,先聚焦核心设计缺陷而非细枝末节。 一个有趣的观点是,评审标准不必完全统一。对新项目代码和新人提交的代码要求应更严格,前者影响后续质量基调,后者关乎职业习惯养成。最后作者指出,若对业务或技术背景不熟,勉强评审反而有害,此时不如坦诚沟通、确保质量。整篇文章没有空谈流程,而是像一位经验丰富的工程师在分享如何在真实团队中让评审变得高效而有人情味。

本机暂存
IT 2018-07-04 10:43:05 / 累计浏览 2,443

用这样的 Vi 配置来保存和组织你的笔记

这篇讲的是开发者如何用自己最熟悉的工具链——Vim、Git 和 GitLab,来高效地管理个人笔记和知识库。作者从“用编码的工具来写笔记会更简单”这个直觉出发,对比了多种笔记方案(如纸质本、思维导图)后,发现维基(Wiki)模型在链接、搜索和长期保存上优势明显,但单独部署一个维基系统又过于繁琐。 最终,作者选择了核心组合:在本地使用 Vim 插件 Vimwiki 作为笔记编辑器,它能直接在终端创建和链接页面,体验与编写代码无异;同时,将笔记文件夹作为 Git 仓库,与私有 GitLab 的 Wiki 功能同步。这样一来,笔记就变成了可版本控制的普通 Markdown 文件,既能在 Vim 里快速编辑,也能通过 GitLab 在手机或网页端随时查看修改。 文章还分享了实用的配置细节,比如如何在 Vimrc 中设置两个独立的 Wiki 分别存放工作和私人笔记,以及如何用插件实现文件的自动提交与同步。对于日常沉浸于终端和 Git 工作流的开发者来说,这套方案让记录知识的过程与写代码一样无缝、自然。

本机暂存
IT 2017-10-15 09:35:11 / 累计浏览 1,982

我看绩效考核

这篇讲的是绩效考核的反思。作者从几位因绩效差评而感到“整个人被否定”的网友经历切入,引出一个普遍痛点:绩效管理本应聚焦于改进事情,却往往异化为对人的审判。他提出,绩效分应打给项目、产品和团队,而非直接指向个人,并以苏步青、爱因斯坦等早年“成绩不佳”者后来成就卓越为例,说明短期评估的局限性。 文章批判了当前主流KPI模式的弊端——它往往让员工只埋头于数字指标,却忽略了工作的初衷与价值,容易催生短期行为和形式主义。作者对比了近年兴起的OKR(目标与关键成果),强调其应具备“由员工提出、以目标为导向、全员共享”的特性,而非变相成为KPI的工具。他同时指出,考核“价值观”尤其危险,容易上纲上线,扼杀创新与独立思想。 对管理者,文章援引索尼、微软、通用电气等公司逐步弱化或放弃传统绩效考核的案例,提醒应警惕绩效主义对团队文化、创新热情的侵蚀。对职场人,作者的建议是:用平常心看待公司打分,因为它无法定义你的人生;但要严肃对待个人成长,因为这才是根本。他以自己中年离职后靠技术能力独立养家并雇用三名工程师的经历,诠释了何为真正的“绩效”——持续做正确的事,并在合适自己的环境中成长。

本机暂存
IT 2017-02-20 00:16:04 / 累计浏览 1,282

2016 年度盘点(完整版)

这篇年度盘点里,作者分享了2016年在家庭、工作和生活上的多重变化与思考。技术篇幅主要围绕一次漫长而曲折的前端重构:最初目标只是将大型CSS文件变量化,却在过程中发现选择器与逻辑混乱,最终演变为前后端代码的全面重写。文章详细描述了项目如何因过度设计、人员变动和实际复杂度而一度失控,又如何在下半年通过聚焦功能完成、样式适配与浏览器兼容,最终在年末成功上线。 在工作层面,除了代码实践,作者也坦诚地谈到团队管理上的学习——认识到只注重过程不够,结果才是关键,同时也需要提升沟通技巧。生活方面,记录了新房装修、孩子莫莫出生带来的重心转移,以及由此引发的消费观念转变:败家重心从个人数码产品(如为家人购置红米手机、小米空净)转向家庭开支与育儿投入。 整体而言,这不仅是一份技术项目的复盘,更像是一位开发者对工作与生活平衡的观察。作者在结尾反思了理财与买房决策,流露出对“结果导向”与“人生自主”的朴素理解,让技术人的年度总结多了几分生活温度。

本机暂存
IT 2016-11-06 22:34:25 / 累计浏览 3,624

8大实用又重要Mac使用技巧

这篇讲的是Mac日常使用中的效率提升指南,文章从区分苹果几种容易混淆的Store开始,为你理清App Store、iTunes Store和Apple Store的区别。不过核心干货集中在对快捷键系统的深度拆解上。 文章将零散的快捷键梳理成了清晰的几类:顶行功能键的巧用、空格键堪称“万能预览键”的神奇之处、以及一整套覆盖文件管理、窗口切换、截屏和系统控制的组合键。比如,文中特别介绍了Command+Shift+4接空格可以精准截取窗口,比QQ截图更原生高效;而Command+Option+Esc用于强制退出卡死的程序,也是Mac用户的必备技能。 除了介绍,文章也提到了如何自定义快捷键,并推荐了KeyCue这个辅助工具,让记忆变得更轻松。最后,作者强调了一个常被忽略的观点:熟练使用触控板的各种手势,其效率其实远超外接鼠标,建议所有用户都去系统偏好设置里完成官方教学。整体来看,这篇文章从基础认知到进阶操作都覆盖了,是一份很实用的Mac使用备忘录。

本机暂存
IT 2016-07-17 23:59:37 / 累计浏览 1,340

不要在和你观点不同的人身上浪费时间

这篇讲的是,作者从网络上常见的观点论战现象出发,提出一个鲜明主张:别在与你观点不同的人身上浪费时间。但这里的“不浪费”,核心意思是,把心力和专注点都放在做成事情、拿出结果上。 文章首先点出,面对不同观点,关键在于理解其背后逻辑——对方为什么这么想、推论有何盲点。如果这过程能启发你,那就“闷声发大财”;如果明显有问题,在没有特别义务时,保持沉默对双方都好。作者以自身文章较少引发撕扯为例,说明看透逻辑能平息辩解冲动。 更深一层,作者强调价值观差异不可调和。像“求同存异”一样,在不得不合作时找共同点,但根本信念不同的人,比如信奉投机取巧与勤劳扎实者,在关键时刻反应迥异。对此,既不必说服,也费劲无效,各自相安为上策。 归根结底,观点分歧在成年人世界里并不重要,重要的是你能否依托自己的价值体系持续进步,做出成果。作者举华为为例——即便被诟病加班文化,但年业绩800亿美元的实绩无可辩驳;而对比一些连房租都愁却网络论政的人,文章建议先“修好自己的身”。 最终,作者回到开头:不争论,是为了专注成长与产出。当你内心不认可他人时,要意识到,你对他而言也一样不重要。所以,大家都去好好干活吧,干出来的成果,往往自有相似的力量。

本机暂存
IT 2016-05-15 23:54:41 / 累计浏览 1,181

关于团队管理的一些思考

这篇写给中层管理者的信,源于作者从“手艺人”向“有政治觉悟的手艺人”转型的切身思考。作者坦言,这是自己在带领团队两年多时间里,被各种状况推着走、不断观察与沟通后总结出的心得。 核心观点围绕几个关键问题展开:首先,团队与个人是相互成就、双向选择的关系,必须建立“今天不努力,明天被替代”的清醒认知,甚至“快于平台成长”。其次,管理者必须敢于开除人,这是建立团队活力和对成员真正负责的第一步。此外,文章强调要建立由“旗手”引领的梯队,形成可传承的团队文化;团队在内部抱团的同时必须对外保持开放融合,避免小圈子化。 作者特别提出了“有政治觉悟的手艺人”这一概念。他认为,在具备专业技能的基础上,懂得处理人与人的关系、学会合作与竞争(即“政治觉悟”),才是管理者在职业道路上更上一层楼的关键,这比单纯的高智商更重要。 文章最后以一句直接而充满期许的话作结:“加油吧兄弟们,早日取代我!”这既是对团队的激励,也呼应了开头“相互成就”的核心理念。

本机暂存
IT 2016-04-02 12:53:14 / 累计浏览 3,662

聊聊 Apache 开源协议

作者从一次开源项目疏于声明版权的小插曲谈起,引出了对 Apache 开源协议的讨论。文章首先用几句话精准概括了 Apache License 的核心:你可以自由使用、修改代码,但若进行开源分发,必须保留原始版权声明并清晰标注改动部分;你甚至可以附加新条款,但前提是与原协议不冲突。 接着,文章将 Apache 协议与社区常见的 MIT、GPL 协议进行了对比。一个关键区别在于,Apache 协议允许衍生作品在特定条件下保持闭源,这与 GPL 的“传染性”(即使用了 GPL 代码的衍生作品也必须开源)形成鲜明对比。作者指出,这正是 Android 系统选择 Apache 协议的主要原因——它允许硬件厂商提供闭源的驱动程序,从而在商业与开源之间找到了一个平衡点。 文中还提到了作者亲自翻译 Apache 协议原文的工作,为读者提供了直接阅读理解的便利。整个讲解结合了具体案例和协议条款,把枯燥的法律文本讲得清晰易懂。

本机暂存
IT 2016-03-29 23:46:18 / 累计浏览 1,560

54chen的程序人生

这篇讲的是一位近十年经验的程序员,回溯二十年前前辈文章后,对自己职业人生的思考。作者从自身成长经历出发,提出程序员应具备的四种核心品质:坚定(对计算机的热爱不因外界枯燥而消退)、乐观(面对行业压力与温饱现实仍不放弃)、冷静(以逻辑战胜困难而非焦虑)、钻研(视排查问题为学习契机而非负担)。 文章具体提及了早期通过小霸王、BBS、外包项目接触计算机的同行共性,也分享了金山实习时“工资只够付房租”的真实窘境,对比了同事因bug焦虑失措的案例。作者最终将程序员的人生路径归结为两条:或以专业积累实现迁移,或跳出纯技术视角转向创业。 这并非一篇技术方案讨论,而是一份带着代码注释风格的职业心路记录,冷静中透着乐观,写给同样在键盘前思考去向的同行。

本机暂存
IT 2016-03-22 22:11:08 / 累计浏览 5,483

献给有裸辞想法的朋友们

这篇讲的是一位前阿里员工从自身职业经历出发,给正在考虑裸辞的技术人提供务实建议。 作者校招进入阿里做Java Web,因对Android开发产生兴趣,在职自学一年后选择裸辞,转型成为Android开发者。他详细复盘了当时的决策过程:一方面因为内部平台成就感低,另一方面确实需要整块时间学习和开发App。裸辞后他休息了两个月,骑行川藏线,之后加入了Android ROM创业公司。 不过,文章的重点在于后续的反思与建议。作者明确表示“不建议裸辞”,并深入剖析了核心原因:裸辞后作为失业者,求职和谈薪都会处于被动,尤其对于转技术方向的人,技能不熟练会成为明显短板;同时,持续的消费和收入中断会带来切实的生活压力。相比之下,他强烈建议“内部转岗”。BAT等大公司内部通常有不错的技术资源和转岗机制,这既能让你切换到感兴趣的领域,又能规避裸辞带来的职业空窗期风险。 文章最后提醒,技术学习终究要靠自己,不必过度追求“共同进步”的环境。对于“打杂”期感到不满的新人,他建议先理清自身目标与能力,对自己的职业规划负责。这是一篇带着过来人温度与理性计算的职业规划指南。

本机暂存
IT 2016-03-21 23:46:42 / 累计浏览 2,564

30条编程名言佳句: 这不是Bug只是未知的特性

不是段子,是真知灼见。这篇汇集了30条来自技术书籍开篇与大佬们(包括松本行弘、Linus Torvalds、Donald Knuth等)的经典编程名言,以一种幽默而犀利的方式,道尽了软件开发的那些事儿。 文章的核心观点是,编程远不止是编写代码,它更是关于人的艺术与复杂的学问。比如Martin Fowler与Kent Beck都在强调,写出人类能理解的“好代码”并养成良好习惯,远比炫技更重要。而控制复杂性则是贯穿始终的主题,Fred Brooks用“九个女人不能生一个孩子”的比喻点破了项目管理的误区,Brian Kernighan则直指其为编程的本质。 文中也不乏那些令开发者会心一笑的“行业真理”,如“它在我的机器上能运行”、“这不是bug,只是未列出的特性”,生动反映了日常困境。从对“过早优化”的警惕到“好代码就是最好的文档”的倡导,这些凝练的句子为技术人提供了思考的支点和会心一笑的共鸣。 这些语录不仅是技术思考的结晶,更像是一个行业文化的缩影,适合放在手边,时常翻阅。

本机暂存
IT 2016-03-18 12:37:09 / 累计浏览 2,921

Mac实用技巧——在Finder中显示文件完整路径

这篇讲的是一个让Mac Finder显示文件完整路径的实用技巧。在默认设置下,Finder只会在标题栏显示当前文件夹的名字,而不会显示完整路径,这给需要频繁导航多层目录的用户带来了不便,尤其是在处理复杂项目文件时,常常需要反复点

本机暂存
IT 2016-03-01 14:02:48 / 累计浏览 5,563

Macbook Air换电池教程

这篇教程源自作者亲身体验:一台2012款Macbook Air使用三年半后,电池从最初五六小时的续航暴跌到仅一小时,最终插电能显示充满但拔电即关机,确认电池彻底老化。 为避免官方维修的高成本,作者决定自行更换电池。在淘宝上找到匹配型号的绿巨能品牌

本机暂存
IT 2016-02-29 23:58:29 / 累计浏览 5,482

技术领导要不要写代码?

这篇讲的是技术领导到底要不要亲自动手写代码这个经典难题。作者从自己刚入行时听闻的“程序员吃青春饭,30岁转管理就不用写代码”的观念,谈到自己当上技术领导后,反而在危急关头写了比以往都多的代码来拯救系统,由此引发了深层思考。 文章没有直接给出“要”或“不要”的答案,而是通过一个具体的团队生产率计算模型来分析。模型对比了技术领导自己单干,以及将时间用于制定规范、优化流程以提升整个团队编码速度和质量后的产出差异,清晰地指出了领导者的核心价值在于“驱动团队”,而非个人贡献。 作者进而提出,在具体场景下(如填补团队能力空白、用代码说服同事)技术领导必须写代码,同时也主张“应当”写,以保持技术手感和决策依据。最终的结论是:没有统一答案,有时要忍住“让我来”的冲动,有时则要忍住“嫌他人代码差”的恶心。文章结尾颇为亲切地提到,愿意写代码的技术领导更可爱,因为这传递出“我和你们是一伙的”信号。

本机暂存
IT 2016-02-21 22:54:19 / 累计浏览 3,943

手滑的故事

这篇讲的是程序员们“手滑”引发的线上惊魂时刻。作者从自己和同行的经历出发,提到了忘带WHERE条件的UPDATE和DELETE、误执行`rm -rf`,以及误杀重要的线上Hadoop任务、误删生产文件等真实案例。那些操作失误后瞬间“浑身颤抖”的体感,相信很多工程师都似曾相识。 文章不仅罗列事故,更着重讨论了事后反应的光谱:从最糟糕的当众批评、追责到底,到更理性的对外冷处理、对内聚焦问题根因而非个人。作者认为,责任主体往往已懊悔万分,过度追责反而导致“不做不错”的消极心态;而复杂的Checklist或繁琐的审批流程,也只是笨拙且降低效率的补救。 他更推崇那些“不知不觉”规避风险的实践,例如建立不同权限的Linux用户,以及做好充分的备份与容错机制。核心观点是:在系统维护中,人远不如机器可靠。与其纠结于事后惩处,不如构建鼓励坦诚报告、聚焦系统性改进的工程文化,因为“没有手滑的人生,是不完整的”。

本机暂存
IT 2016-02-21 22:51:27 / 累计浏览 3,302

程序员如何写出一份好的文档?

程序员的工作不止是写代码,文档质量同样影响项目协作效率。这篇经验分享文章直接切入痛点,从四个实用技巧出发,教你如何写出清晰、易懂的技术文档。 作者首先强调了结构化的重要性——杂糅的信息会变成“云里雾里”,而将功能点逐条列出,逻辑立刻清晰。其次,对于socket通信这类流程性内容,一张流程图比大段文字更直观,读者能迅速把握整体逻辑。第三,当涉及连续的数据对比(如每月bug修复量)时,用图表替代文字描述,数字变化一目了然。最后,避免直接堆砌代码,转而使用伪代码或流程图来说明设计思想,能显著降低阅读门槛,让文档更具普适性。 这些技巧的核心,正如文中引用爱因斯坦的话,都指向一个原则:简单就是美。好的技术文档也应如此,用最直接的方式传递信息,让读者轻松理解复杂的内容。

本机暂存