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

开发者

共 811 篇文章

IT 2013-03-05 13:13:54 / 累计浏览 2,672

GitHub 是怎么火起来的

这篇讲的是GitHub的早期发展史与技术传播逻辑。作者从2009年Ruby大会的亲身经历切入,指出GitHub在获得巨额融资引发大众关注前,早已在Ruby社区奠定了坚实基础。 文章的核心观点在于,Git和GitHub的爆发是技术需求驱动社区自然演进的结果。Ruby/Rails框架虽开发高效,但多人协作时面临传统版本控制系统(如CVN/SVN)的冲突痛点。Git的分布式与分支管理特性完美契合了这一场景,使得Ruby社区几乎全员迁移至Git生态。而GitHub正是诞生于这一浪潮,由湾区Ruby开发者为解决Git托管需求而创造。 更深层的传播链条清晰可见:Rails项目率先迁移到GitHub形成示范,社区内包管理工具Gem的全面接入形成网络效应,最终带动了关系紧密的JavaScript与iOS开发社区跟进。作者强调,这种由核心开发者社区向外扩散的“涟漪效应”,是GitHub增长的关键动力,而其高估值则更多源于云计算SaaS平台的商业模式。文章为我们提供了一个观察技术如何通过解决具体痛点、依托社区凝聚力实现指数级增长的经典案例。

本机暂存
IT 2013-03-05 12:42:04 / 累计浏览 1,123

大公司的创新思考:基因延伸性创新

这篇讲的是大公司如何在新时代实现创新成功。作者从Scott的“新企业车库”时代论出发,提出了一套更细致的创新分类:基因延伸性创新与颠覆性创新。 作者认为,大公司依靠资源、规模和品牌取得的创新成功,本质上是一种“基因延伸性创新”。公司的“基因”——即其在核心竞争领域长期优化形成的独特优势——既是护城河,也可能成为拓展新领域的障碍。文章拆解了新浪微博和微信的成功案例,指出它们都精准地将母公司在媒体运营和通讯工具上的基因,延伸到了移动互联网新战场。 基因延伸性创新要成功,必须满足两个条件:一是创新方向必须符合公司基因,否则如Google+之于Google、新浪游戏之于新浪都难以成功;二是延伸的新领域必须有足够的市场空间,文章以Apple TV的有限市场想象空间作为反例。而另一种“颠覆性创新”由于会重构游戏规则,往往难以在大公司内部存活,更多由创业公司驱动。 最后,作者也提到通过收购来改变公司基因(如苹果收购NeXT)是大公司实现颠覆性创新的艰难但可能的路径。文章的结论是,未来将是大公司与创业公司各展所长的创新时代,而非一家独大。

本机暂存
IT 2013-03-04 14:42:06 / 累计浏览 4,562

代码审查:ThoughtBot官方给出的代码审查指导原则

这篇讲的是如何让代码审查变得更高效、更友好。作者从 ThoughtBot 的官方指南出发,总结了在 GitHub 上进行代码审查时,审查者和被审查者双方都应遵循的一系列核心原则。 文章为审查者提供了具体的沟通心法:要记住编程主张常是个人观点,因此应多提问少命令、请求说明而非指责、避免代码归属之争,并且绝不能人身攻击。审查评论应清晰谦逊,避免使用“总是”“从不”等夸张修辞。如果讨论过于深入,可以转到线下进行。 而对于被审查的代码作者,文章建议要主动感谢建议、理解对事不对人、解释代码背后的思考,并在一个独立的 push 提交中集中处理反馈。关键流程包括:基于反馈更新代码、注明审查链接、等待所有审查者退出后再合并,并确保持续集成测试通过。 此外,文章还提倡建立统一的代码风格指南。当出现分歧时,应在指南仓库中发起讨论,而非在审查评论中争论。这些具体而微的实践,旨在将代码审查从一场潜在的技术辩论,转变为一次促进团队学习和代码质量提升的协作。

本机暂存
IT 2013-03-04 14:19:59 / 累计浏览 6,493

是是非非本寻常,我们要不要跳槽

这篇讲的是作者从个人跳槽经历出发,对“要不要跳槽”这个职场难题的深度思考。他以自己因高管承诺未兑现而冲动加入阿里、反而获得快速成长的经历为引,提出了一个核心观点:许多跳槽源于职场中的“不爽”与误解,但逆境才是真正塑造能力的环境。 作者指出,个人价值往往由直接上级决定,向上沟通和客观自省至关重要。他冷静分析了跳槽的隐性成本:不仅包括脱离熟悉环境的投入,更涉及机会与风险的对等博弈——高薪挖角可能伴随“无法着陆”的风险。他特别强调,“剩者为王”,在平台中日耕月耘的积累,其长期回报可能远超频繁跳槽带来的短期薪资涨幅。 最终,文章给出了务实的建议:在能力与火候未到时,不必主动求职,好的机会自会找上门;而转行则需极其谨慎,应在现有领域深耕后再做考量。文章将个人选择与平台价值紧密关联,为身处职业十字路口的人提供了一套理性决策的思考框架。

本机暂存
IT 2013-03-03 23:37:17 / 累计浏览 4,438

GA SEO报告中的Not Provided和Not Set

用GA追踪SEO时,看到自然搜索流量里冒出来的“(not provided)”和“(not set)”总是让人一头雾水。这篇文章就专治这种困惑,作者从GA报告的具体路径入手,一步步拆解了它们的来龙去脉。 核心问题在于,(not provided)并非GA的故障,而是Google为保护已登录用户的隐私而采取的加密措施。当用户通过加密的HTTPS链接访问网站时,搜索关键词信息就被隐藏了,GA自然也就“无从得知”。这也解释了为什么付费广告数据通常不受影响——Google对广告主还是“网开一面”。而(not set)则更像是一个占位符,用于表示那些本身就没有关键词维度的流量来源,比如直接访问。 文章还指出了一个现实:随着浏览器安全策略的收紧,(not provided)的比例可能远超预期。既然精确获取关键词已无可能,作者建议利用GA的“二级维度”功能,通过分析对应的着陆页来间接推断用户意图。这篇分析把GA报告里一个看似技术性的小问题,讲透了背后的逻辑和应对思路。

本机暂存
IT 2013-03-03 22:50:48 / 累计浏览 2,234

学习周鸿祎的产品推销手法

这篇讲的是,作者通过拆解周鸿祎在《天天向上》节目中的一次产品宣传,深入剖析了一套极具个人色彩的产品推销“方法论”。 文章以2013年周鸿祎上《天天向上》推广360产品为案例,提炼出其手法的“三板斧”与更多内核。首先,最核心的一点是“始终高举用户利益旗帜”,将产品行为与“为用户服务”的叙事牢牢绑定,建立天然的道义制高点。其次,是精准运用“同理心”,以“我和你一样”的姿态拉近距离,让产品行动显得是为共同利益而战。再者,善于在对比中凸显自身优越,通过树立明确的“敌人”来定义自己。 更值得玩味的是其“武学正宗”级别的场景化推销能力——在节目中直接放出手机号演示防骚扰功能,堪称将产品卖点融入具体场景的经典示范。此外,作者也提及了周鸿祎娴熟的“打太极”式沟通技巧。 总结来看,这篇文章并非简单复述事件,而是将一次公开亮相解构成了可供产品经理借鉴的“推销心法”:即如何围绕“用户利益”的基石,综合运用同理心、对比、场景营销等技巧,将产品叙事植入人心。对于理解如何进行有策略、有层次的产品沟通,提供了非常具象的参考。

本机暂存
IT 2013-03-03 22:45:17 / 累计浏览 4,846

如何管理程序猿

这篇讲的是作者从管理一支“程序猿”团队的日常出发,总结出几条核心管理心法。作者认为,虽然程序员有着独特的思维和作息,但管理他们的黄金法则依然是“己所不欲,勿施于人”,关键在于特别留意他们“痛恨且不擅长”的小事。 一个鲜明的例子是:团队里没人愿意写周报,作者便选择自己根据成员活动总结,每周写15份,这反而比催促他们更高效。其他要点包括:尽可能为他们减少官僚流程;分配有挑战性、甚至有竞争感的任务;主动分享公司业务动态,帮助他们寻找解决方案;以及建立定期的一对一谈心机制。 作者也指出,管理要避免过度“优待”个别人,而是让整个团队感受到灵活度和尊重。最后,文章提及了一个关于管理大型团队的演讲视频链接,并强调,只要方式得当,管好这支特殊的团队能带来丰厚的回报。

本机暂存
IT 2013-02-28 23:49:04 / 累计浏览 8,176

一路读来 – 那些曾改变我思维轨迹的书

作者在新年假期整理了一份改变自己思维轨迹的书单,从学习方法、软件开发、设计思维延伸到商业与人生。这份清单的核心脉络,是一位技术人如何通过阅读构建起跨领域的认知框架。 起点是高中读的《学习的革命》,它引发了作者对传统教育的质疑。到了大学阶段,《程序员修炼之道》与《敏捷软件开发》将敏捷开发从理念落地为具体实践,确立了实用主义的工作方式。而《交互设计之路》和《设计中的设计》则引导他将视角从纯技术转向用户心智和产品体验,认识到设计是产品不可分割的一部分。 思维的拓展不止于技术本身。《富爸爸,穷爸爸》重塑了他的财富观,强调资产与事业的构建;《精益创业》则将敏捷思想扩大为完整的产品制造方法论,其“验证认知”和MVP理念极具工具价值。此外,《引爆点》解析了产品流行的机制,《日本漫画为什么有趣》训练了他从符号本质看事物的能力。最后,书单以《生命之光》收束,指向对身心平衡与生活细节的珍视。 这并非一份简单的书目罗列,而是一位创作者思维演进的连续体。作者通过定期重读,不断校准和深化自己在技术、商业与生活层面的思考。

本机暂存
IT 2013-02-27 00:05:35 / 累计浏览 8,922

技术人员的未来:做技术还是做管理?

这篇文章讲的是许多工作数年的技术人员都会遇到的十字路口:未来该走技术专家路线,还是转向管理岗位?作者从个人职业规划出发,探讨了这个普遍而重要的选择。 文章首先指出,这个选择不能盲从“当官才有出息”的社会观念,而应基于性格、兴趣和个人目标来判断。作者用出租车司机老师傅拒绝当小组长的真实故事说明,有人天生不擅长或不喜欢管理人,专注于技术反而能做得更好。 接着,文章梳理了两条路线的不同要求。技术路线可以深耕为技术专家、架构师或业务专家,核心在于专业深度或广度与解决问题的能力。而管理路线则更侧重沟通、判断、执行和团队协作等综合软技能,与技术能力的要求差异很大。 最后,作者建议,明确目标是第一步,然后将目标拆解为可学习的步骤,并持之以恒地实践。他强调,选择与自身性格和热爱相符的道路,职业发展会更顺畅,人也活得更自在。 希望每位读者都能找到属于自己的答案。

本机暂存
IT 2013-02-19 11:57:42 / 累计浏览 2,581

被“绑架”的产品经理

这篇文章探讨了一个产品团队中常见的现象:产品经理如何被各方需求与意见所“绑架”,以及如何找回工作的自主权与初心。 作者从个人体验和观察出发,描绘了产品经理面临的典型困境——来自上级的指令、技术的实现边界、UI/交互的设计追求,以及市场运营的诸多诉求,常常让人疲于奔命,最终迷失了产品的方向与自我的判断。文章犀利指出,当产品经理的专业技能无法超越团队中任何一员时,其立足之本便值得深思。 在剖析了“被绑架”的根源后,文章提出了具体的“挣脱”建议:学会对不合理的需求说“no”;了解基本技术实现以拓宽思路;培养冷静的判断力,甚至敢于离开不适合的环境;同时学会放下执念,对自己与他人保持宽容。这些建议旨在帮助产品经理构建强大的内心与清晰的专业边界。 最终,文章落脚于对职业初心的叩问。它认为,正是一次次被“绑架”的经历,反而锤炼了产品经理的心智。正是出于对产品纯粹的热爱,才能让人在无数次想放弃时,依然选择坚持走下去。

本机暂存
IT 2013-01-22 13:59:32 / 累计浏览 3,034

程序员新年计划

作者从同事一篇关于新年计划的文章受到启发,结合自己近20年的开发经验,提出了几项对程序员职业发展切实可行的反思性目标。 他认为,职业生涯中应避免成为“最聪明的人”,因为那意味着无人可问。为此,他倡导双向的指导关系:一方面主动寻找并请教你尊敬的导师,无论是圈内专家还是圈外长者;另一方面,也应成为他人的导师,通过倾听和陪伴,在对方需要时提供方向指引。 在代码层面,他回归了经典原则。首先是KISS——坚持“保持简单”,因为维护代码的时间远多于编写,故而应花时间重构,让代码短小易读、可被接手。其次是RTFM——认真阅读需求文档,这是项目知识的基石,与其盲目开干,不如多与需求提出者沟通。最后是DRY——杜绝重复,提醒我们不要在多个项目中复制粘贴同一段代码,这无异于为未来埋雷,应善用工具将重复片段重构为方法。 这篇文章并非技术清单,而更像一次职业心态的梳理,提醒程序员们在编码之外,关注协作、沟通与代码的长期生命力。

本机暂存
IT 2013-01-17 13:23:56 / 累计浏览 2,942

C语言打开文件的模式

这篇讲的是作者在处理BMP图像文件时遇到的一个经典坑。他在编写一个读取并保存BMP文件的程序时,发现输出的文件总比原文件大3个字节,而且图像内容完全错乱。问题出在哪里呢? 经过排查,根源在于打开文件时使用了`fopen(filename,"r+")`这种默认的文本模式。在文本模式下,C语言的文件读写会进行换行符(`\n`)与“回车+换行”(`\r\n`)的自动转换。而BMP文件作为二进制文件,其数据流中恰好包含十六进制值`0a`(等于换行符的ASCII码),这个值在颜色表中出现了三次。结果,每次读取时程序都把`0a`误当作换行符并扩展成两个字节,导致数据读取溢出;写回时又将两字节序列压缩为一字节,最终使得文件大小永久性地多出了3个字节,破坏了图片结构。 解决方法非常直接:将文件打开模式改为二进制模式`"wb"`。这个小bug提醒我们,只要操作的不是纯文本文件,就必须明确使用二进制模式(如`"rb"`、`"wb"`),以避免底层编码转换带来的隐秘错误。

本机暂存
IT 2013-01-16 14:04:04 / 累计浏览 3,481

为什么会有这么的编程语言

这篇文章用一个独特的视角解释了编程语言为何如此繁多:每一门新语言的诞生,几乎都是为了解决上一门语言的某个痛点。 作者将这种关系归纳为一种“修复视角”,并列出了一串生动的对照表。例如,Fortran因汇编语言“太低级”而生,而Python的出现则是为了解决Perl“太让人受不了”的问题。从C++为改进C,到Java意图摆脱C++的“笨重”,再到C#试图摆脱Sun公司的控制,这份清单清晰地勾勒出一条条语言演进的驱动力线。 这种视角剥离了复杂的语法和特性对比,直指语言设计的核心动机。它告诉我们,编程语言不是凭空创造的炫技,而是对既有工具不足之处的具体回应。对程序员而言,理解这层“前因后果”,或许比单纯掌握一门语言的语法更能洞悉技术选择的本质。

本机暂存
IT 2013-01-10 22:34:59 / 累计浏览 4,825

Linux vimrc配置

这篇讲的是如何通过精心配置.vimrc文件,将Vim编辑器打磨成更趁手的效率工具。文章面向已经熟悉Vim基础操作的用户,核心价值在于提供了一套完整且经过注释的配置范例。 作者从.vimrc文件的作用入手,解释了它作为Vim行为控制中心的重要性。随后,文章详细拆解了一系列实用的配置项,不仅包括开启语法高亮、显示行号、设置搜索行为等基础功能,更深入讲解了通过设置tabstop、cindent、smartindent来优化代码缩进体验。文章的特色在于提供了大量提升操作效率的快捷键映射方案,例如用自定义前导键实现快速保存、在单词两侧添加括号、一键注释与取消注释等,并清晰地解释了每条命令的作用。 最后,文章还简要总结了Vim强大的map模式,鼓励读者在此基础上打造个性化的工作流。整个配置方案具体而微,从环境设置到快捷键定制层层递进,对于希望深入定制自己编辑环境的开发者来说,这份“菜谱”式的指南可以直接上手实践。

本机暂存
IT 2013-01-10 22:14:10 / 累计浏览 7,458

如何判断自己是否到了该辞职的时候

作者从自己半年前辞去投资公司工作、投身创业的亲身经历出发,梳理了一套实用的“离职决策框架”。他并非鼓励冲动辞职,而是坦诚地总结了五个关键的职业倦怠信号,比如总在业余时间忙自己的项目、对升职毫无兴趣、固定工资无法点燃热情、感觉闯劲在缓慢流失,以及因放弃其他机会而夜不能寐。这些来自一线观察的细节,精准描绘了许多职场人内心挣扎的轨迹。 对于已经下定决心的人,文章也给出了冷静的建议:寻找志同道合的伙伴、从一个小创意起步、尽快清理债务减轻负担,并珍惜家人支持。最后,他简要分享了辞职后全身心投入产品开发的状态,暗示了创业初期的巨大投入与挑战。 这不是一篇简单的励志文,而是一份基于真实选择的观察笔记。它没有提供标准答案,却帮助读者审视自己内心的真实信号,思考个人职业价值与人生可能性的边界。

本机暂存
IT 2012-12-23 23:18:50 / 累计浏览 1,808

微活动-微营销实例分析

这篇讲的是微博“微活动”中的一种高性价比玩法——有奖转发的实操分析。作者以商麦网在六一期间的小霸王游戏机活动为例,拆解了从设置到评估的全流程。 文章核心是引入了CPS(Cost Per Share,即每次转发成本)这个关键指标来衡量活动效果。计算方式很直白:奖品成本除以总转发次数。比如那个65元成本的活动,在获得299次转发时,CPS仅为0.22元。作者还将此与投入iPhone 4S的大型活动(CPS约0.17元)对比,说明即使奖品预算不高,通过创意和结合热点也能达到不错的传播性价比。 除了数据计算,文章也细致总结了有奖转发设置中的诸多“坑”与要点,比如标题要突出奖品、转发内容是传播核心、一张好图片比什么都重要,以及奖项设置对效果的影响最为直接等。这为想尝试微活动的运营者提供了一份简明的操作检查清单。

本机暂存
IT 2012-12-11 13:33:03 / 累计浏览 8,027

程序员疫苗:代码注入

这篇讲的是“代码注入”这类常见的安全漏洞,作者将其比喻为程序员世界的病毒,并希望通过真实代码演示来为新人“注射疫苗”。文章详细剖析了Shell注入、SQL注入等多种攻击手法。 例如,在Shell注入中,通过拼接未经校验的用户输入,攻击者可以轻松执行任意系统命令。而在SQL注入部分,作者将其称为“黑客的填空游戏”,演示了如何通过构造恶意输入来绕过登录验证、窃取数据甚至删除整个数据库。文章还点出了变量覆盖、文件包含等其他危险操作。 作者通过Perl、PHP等不同语言的实例,清晰地展示了漏洞的原理和可怕后果。其核心目的不是罗列防御方法,而是让开发者先深刻理解攻击是如何发生的,从而在编码之初就建立起牢固的安全意识。这就像为程序员接种了第一剂防御“代码病毒”的疫苗。

本机暂存
IT 2012-12-07 13:58:53 / 累计浏览 5,148

VIM常用小窍门收集

这篇讲的是VIM中那些非常实用、却总让人想不起来怎么用的“小窍门”。作者从实际工作体验出发,指出在Linux服务器环境下,VIM是无法回避的编辑工具,但一些高效操作(如批量注释)却因不常用而容易遗忘。文章聚焦于解决这个痛点,具体展示了如何利用VIM的“range”(如:2,12s/^/#/g)和重复次数(如命令后的11)来实现简洁的列编辑,并预告了后续会解析替换命令的细节。此外,还提及了使用f和t进行快速删除的技巧。对于想在VIM中提升效率、又苦于记不住复杂命令的开发者来说,这篇文章提供了一个清晰的备忘清单和具体示例。

本机暂存
IT 2012-12-06 00:08:32 / 累计浏览 5,183

成长的财富,我做产品经理社区组织的这3年。

这篇讲的是PMCAFF创始人回顾自己从2008年到2012年,如何从一个学习者开始,一步步构建起一个有影响力的产品经理社区的三年历程。文章并非泛泛而谈,而是像一部编年史,记录了从零散QQ群到正式组织,从“蹭场地”的草根聚会到走进阿里、百度举办活动,再到尝试提供招聘服务、思考社区商业模式的全过程。 作者没有回避其中的窘迫与挣扎,比如早期缺乏经费、大公司初期不认可、组织者精力有限、以及草根社区在商业化与公益属性间的平衡困惑。他分享了许多具体的观察与发现,例如社区用户70%是渴望学习但基础一般的小白,30%是已积累资历的“潜水”者;又如,很多热情难以持续,需要机制来保障驱动力。 这篇文章最动人的地方在于它的坦诚与反思。它揭示了一个社区运营者真实的成长路径——不仅是帮助他人,更是自己获得了组织能力、人脉资源与行业认知的巨大“财富”。最后作者提到PMCAFF或许会走向更核心的资源对接网络,这为社区的未来留下了想象空间。

本机暂存
IT 2012-12-04 00:02:10 / 累计浏览 4,196

关于《代码大全2e》

这篇讲的是一位普通程序员与《代码大全2e》长达两年的“纠葛”。作者坦言,自己是从“著名程序员”的推荐中买下了这本砖头,期望它能照亮“码农”迷茫的职业道路。然而,这本书他读了两年仍未读完,甚至直接用了“难看”来形容阅读体验。 所谓“难看”,一方面在于开篇就用三十多页探讨软件构建的重要性和隐喻,被作者戏称为“前戏过长”,足以消磨大部分读者的兴趣。另一方面,书中关于“程序=算法+数据结构”、管理复杂性等论述,在他看来又“太合乎常识”,读来仿佛不断在印证自己的既有认知,缺乏新奇感。 那么这本书到底值不值得看?作者给出了非常个人化且纠结的结论:对于那些知道正确方法却总找借口不用的人,看书是浪费时间;对于已经践行的读者,看书可能只是不断获得共鸣却收获有限。他最终坦承,自己坚持读下去的理由略显“可悲”——不甘心浪费买书的钱,以及一种要批评或称赞都得先读完的自尊。 在他看来,《代码大全》系统性地阐述了编码实践,这一点在众多编程书中绝无仅有,但它大概不会成为你书架上的经典。如果非要推荐一本编程书,它或许也不是首选。这篇文章的价值,恰在于这种来自一线码农的、毫不掩饰的真实阅读反馈。

本机暂存