IT
文章平均质量分 93
frank909
爱阅读的程序员,专注于技术思考和分享。关注架构设计、Android 开发、AI、数学、自动驾驶领域,个人公号:Frankcall
展开
-
我对面向对象的6大设计原则的理解
程序员都知道编程有 3 大类:面向过程、面向对象、面向函数。面向对象是被讨论的最多的,个人认为,这是因为 Java 之类的编程语言有强大的用户基础,本质还是因为比较符合人的直觉。说到面向对象,大家可能就会很快想到了 23 种设计模式,可只有少部分人会想到面向对象的 6 大原则,所以本文我分享一下我对于 6 大原则的看法。6 大原则是内功心法,23 种设计模式是武术套路,它们的本质是为了更好地面对需求的变化。很多人对于设计模式背诵的滚瓜烂熟,但是却没有办法评价自己的代码质量,尤其是根据自己的想法整了一大原创 2020-07-21 00:46:32 · 1482 阅读 · 3 评论 -
工作多年,我对架构的一些理解
每一个程序员都听过架构这个词,每一个程序员都有自己对此的理解和看法,本文分享我对架构的理解。什么是架构?因为我是程序员,所以本文讨论的架构特指软件架构(Soft Architecture)。我看过很多关于架构方面的书,每一位作者给出的定义都不一样,本质上却相差不多。概括而言,架构是:针对系统的表达,描述了系统的要素组成,及要素之间的交互关系。上面就描述了针对一个系统的架构,有 3 个顶层模块 ,模块 E、模块 F、模块G。模块间有交互,并且模块 E 中还有模块。所以,一般讲架构时,我们是指原创 2020-07-13 09:41:54 · 8365 阅读 · 8 评论 -
程序员能轻易做好其它行业吗?
直接给观点了。答案是:未必。专业性低的行业自然可以。专业性高的行业,困难很大。最近,市场大热,估计很多程序员小伙伴有些按耐不住了,甚至已经火速进场。我只能说:谨慎一点。这世界大多不如我们想的那样。程序员很优秀,逻辑很强。但那个是在计算机的世界当中,运行在确定的环境中,执行确定的逻辑。现实世界可能是混沌的。好比是用牛顿怎么也解释不了量子的世界。隔行如隔山,这个道理至今适用。我们要警惕自己的主观愿望,高估自己的行业含金量,低估其他行业的专业性。任何成熟的行业,都会一套分工明细的技术体系。在当前原创 2020-07-09 22:46:21 · 1664 阅读 · 1 评论 -
聊聊程序员的 3 个烦恼
程序员大概是这世界上最单纯乐观的一类人,虽然我们自嘲"码农",但内心却大多无比傲娇,我们总坚信自己在改变旧世界,创造新世界,所以我们看起来始终乐观单纯,而此文,我不聊快乐,聊聊作为一个程序员,我意识到一些让我痛苦和烦恼的地方。1. 完美主义机器不会说谎。当程序出现 Bug 时,一定是某个地方有问题。要么是代码,要么是硬件,考虑到大多数程序员不与硬件打交道,所以当程序出现问题时,一定是逻辑不通顺,或者是覆盖度欠佳。程序员一直习惯于这种确定性逻辑问题的定位与解决,久而久之会形成一种完美主义的习惯。但原创 2020-06-29 08:26:11 · 1940 阅读 · 3 评论 -
关注这几点,远程办公不犯迷糊
受疫情的影响,很多公司选择了延期开工,即使开工也是远程办公,我所在的公司也不例外。今天是第 1 天办公,因为和现场办公体验不一样,现总结几点觉得可以提升远程办公效率,现与各位交流讨论。提前做功课很有必要在决定全员远程办公前,公司的管理层开了好几次会议,动态规划了好几种方案。这真的算更新的比较频繁,但考虑到特殊情况这也是没有办法的事情。实际上,真正实施的一天过去了,效果还不错。我觉得和提前做...原创 2020-02-10 22:23:35 · 4198 阅读 · 0 评论 -
一个程序员的自我修养和敬畏之心
刚刚我删掉了一篇接近 10W+ 的博文,这篇文章传播比较广,有 900 人左右点赞,也有 200 多评论,也因为此我自身受到了很大的困扰。我有不断的反思自己,为何有如此多的人对我冷嘲热讽。这段反思持续了很长一段时间,期间我阅读大量文章想去找一些答案,也有认真去阅读那些或客观或戾气的评论,想想这一切究竟是为什么。此刻,我意识到一些问题,现总结如下:1. 凡事要照顾好情绪,不能光靠逻辑有些事情是不...原创 2020-02-05 16:01:29 · 14978 阅读 · 32 评论 -
碎片化写作后,我准备将毕生所学体系化地展示出来
最近听人讲解唐诗,忽然特别喜欢「斐然」一词。我觉得人生应该如此,潇洒而不拘。程序员的坎应该是年龄,三旬已是老汉,可出于热爱我希望自己能编程到老。一个人最宝贵的应该是思想,一个程序员最宝贵的东西应该是算法思想和编程经验。我将在此星球,撰写系列纯技术文章。目前规划是:基础算法系列设计模式系列软件架构系列程序员的数学系列机器学习系列深度学习系列甚至自动驾驶系列。价格方面,我会...原创 2019-10-21 14:52:06 · 3635 阅读 · 5 评论 -
作为技术面试官,我在面试时考虑什么?
最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。作为一个面试官,我们也需要这样,我也会经常总结和反思自己的面试技巧,现分享如下,希望求职者能有反向的思维,下次面试成绩能更好。机会是留给有针对性准备的人的我觉得是这是最重要的一点,很多人可能觉得同伴和同学跟你差...原创 2019-10-21 10:46:36 · 21183 阅读 · 56 评论 -
C++ 利用 ifstream 和 ofstream 读取和修改文件内容
C 语言读取文件的时候很麻烦,C++ 相对来说有很方便的库可以用,方便的多,所以平常开发中推荐使用 C++ 中的库去读写文件。本文介绍如何利用 C++ 进行最简单的读写文件操作。fstream 库用到的关键库是 fstream.在教科书上最常见的输出输入库是 iostream 但是它针对的是标准的输入输出设备读写,而 fstream 是针对文件的。它有 3 个很重要的类。ifstrea...原创 2019-03-06 17:58:26 · 11621 阅读 · 0 评论 -
C/C++ 用 pthread 进行多线程开发
作为一个程序员,不管你用的开发语言是 C、C++、Java、Python 或者其它,你总会需要处理多任务。多线程是实现多任务处理的一种最常用的手段,线程相比进程而言显得轻量级。本文分享如何用 C 进行多线程开发。核心在于 pthread 这个库。调用 pthread_create()函数就可以创建一个线程。它的函数原型如下:#include <pthread.h>exte...原创 2019-02-21 14:01:14 · 28030 阅读 · 1 评论 -
开发者 git日常操作备忘录
git 是常见的版本控制软件。但是如果不经常使用的话,就会忘记一些基本的命令操作。本文的目的也是对常见的命令做一个备忘,同时希望可以帮助到大家。创建 git 仓库mkdir testonecd testonegit init会出现以下结果Initialized empty Git repository in /home/xxx/excirsises/testone/.git/...原创 2019-01-23 15:12:06 · 12228 阅读 · 3 评论 -
下阶段博文技术方向预告
2018年我要学习并且会分享的技术内容自2017年9月份之后,博文就停止了更新。8月份接了一个项目,自己的工作是要进行 Android 代码的编写,是在汽车的中控屏幕上的 App 开发。而 9 月份,因为同事的离职,我临危受命,接受了领导分配给我的一个项目的项目经理角色,好在我之前的 Android 代码部分我一个月完成了代码的基本框架,我将工作转交给了另外一个同事,然后自己专门负责项目的管理原创 2018-01-23 23:12:38 · 11278 阅读 · 10 评论