2018
07-11
07-11
iOS内存管理:从MRC到ARC实践
对于iOS程序员来说,内存管理是入门的必修课。引用计数、自动释放等概念,都是与C语言完全不同的。搞明白这些,代码才有可能不crash。然而就是这么牛逼的内存管理,着实让我这个从C转过来的老程序员头疼了一段时间。[C++程序员的迷惑和愤怒]iOS内存管理的核心是引用计数。与众多五年甚至更多以上开发经验的程序员一样,笔者当初是从C/C++转到的OC,接触到MRC。当时遇到最头疼的问题就是:为什么那么多releas...
继续阅读 >
在写《Go语言标准库》的第九章——测试时,看到了此文,讲解挺细致,于是翻译为中文,作为学习《Go语言标准库》的第九章的补充材料。如果你花过一些时间学习如何编程,你很可能见过许多地方提过测试。似乎每个人都在谈论测试,似乎都同意你应该进行测试,但这到底需要什么呢?在这篇文章中,我将尝试回答这个问题,首先解释什么是测试,然后我会用Go去深入实际编写测试。在编写测试时,我将通过编写自定义mai...
入门不要拿着放大镜去学就像盲人摸象一样,他要想弄清楚大象的真实面貌可能要摸很久,就好比我们拿着放大镜在学习java一样,java经过这么多年的发展,可以说非常庞大。如果我们要知道大象长什么样,就应该放下手中的放大镜,向后退远点,反而能够非常清晰的看到它的全貌。学习一门新的语言也一样,有很多很多网上的教程,非常的大而全,一般得系统的学习30~60小时之后才能正式的接触项目开发。基础很重要,但是学习了太...
当我加入Ansible团队之后,我决定写下多年来所学到的软件工程实践和原理方面的经验。我的激情是测试,因为我相信良好的测试既可以确保最低质量标准(可惜很多软件产品都缺乏这一点),也可以指导和塑造开发过程本身。以下许多建议与测试有关,其中一些原则甚至特定于Python,但绝大多数不是。(对于Python程序员,PEP8应该是编程风格和指南的第一站。)1、不要编写你认为以后可能需要但目前不需要的代码。这是对未来想象的...
没有灵丹妙药能让你成功应聘为开发人员。但是,在此过程中却有一些非常有帮助的建议。我最近采访了MattLangan和ChristianMacolino,Atlassian公司两名最顶尖的高级技术招聘人员。我想知道他们——来自于一家为共计33亿美元的软件公司招聘高科技人才——的看法 。本文着眼于招聘的周边问题,其中包括一些实用的技巧和面试指南。简历首先要有拿得出手的简历。我们需要通过这些,以便于展示自己的能力给参与招聘过程的...
40条真言,希望对进阶中的程序朋友有所帮助。1、重构是程序员的主力技能。2、工作日志能提升脑容量。3、先用profiler调查,才有脸谈优化。4、注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎碎念注释,实际就是背景噪音。5、普通程序员+google=超级程序员。6、单元测试总是合算的。7、不要先写框架再写实现。最好反过来,从原型中提炼框架。8、代码结构清晰,其它问题都不算事儿。9、好的项目作风硬派,一键测试...
这几年里,单页面应用的框架令人应接不暇,各种新的概念也层出不穷。从过去的jQueryMobie、Backbone到今天的Angular2、React、Vue2,除了版本号不同,他们还有很多的相同之处。刚开始写商业代码的时候,我使用的是jQuery。使用jQuery来实现功能很容易,找到一个相应的jQuery插件,再编写相应的功能即可。对于单页面应用亦是如此,寻找一个相辅助的插件就可以了,如jQueryMobile。尽管在今天看来,jQue...
在开发界有一个长期引起争议的说法,那就是所谓的10x程序员是否存在?这个说法是Brooks,F.P在《没有银弹》中首次提出的,他认为在普通设计师(程序员)和优秀设计师(程序员)之间,有着10倍多的差异。对于10x程序员是否存在这个问题,开源键值存储数据库系统Redis的开发者antirez(SalvatoreSanfilippo)认为,如果把编程工作看作是一门“非线性”学科的话,那么不仅存在10x程序员,甚至连100x程序员这种异兽都有,同...