前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三年程序员的日常

三年程序员的日常

作者头像
落影
发布2018-04-27 18:01:48
8050
发布2018-04-27 18:01:48
举报
文章被收录于专栏:落影的专栏落影的专栏

前言

汇总平时的一些思考。

正文

如何快速上手一个庞大的工程?

这个问题,我已经经历过多次,现在的方式:

1、整理基本框架,研读代码规范,熟悉团队开发习惯;

2、熟悉业务和对应模块,复杂细节暂时当黑箱处理,重点研究流程;

3、从本地存储=>UI处理=>网络请求=>同步/异步处理 的过程进行分析,尽快上手业务开发;

4、善于利用Xcode,有call和caller分析调用关系,有view debugger理清视图层级,有lldb可以跟随代码逻辑;

在技术融入的同时,了解团队交流方式,适应工作节奏,也是很重要的一点。

PS:我13号入职,14号装好电脑就被分配需求,并且排期是在16号体验。 项目的工程很庞大,在同事的指导下找到对应的类,接下来就靠自己的解决方式。

产品体验

iPhone的UC浏览器用了2年,QQ浏览器用了半年的用户,对浏览器使用的自我分析。喜欢UC的几个点:

1、奇趣百科,小贱君的日报、神回复等;

2、UC资讯,UC有震惊部、竹鼠、迪拜、鲸鱼屎;

3、UC的小说模式,非常好用,比付费的QQ阅读体验还好;

4、网页浏览结果更好,多年浏览器经验的积累;

5、视频播放体验,UC有半屏模式、可拖动窗口模式、全屏模式;

以上都是UC的优点,通过长时间使用,用户对工具的依赖,工具上的便利性成为竞争壁垒

我在浏览器的几个高频使用点:看小说、看资讯、看视频、看网页、看漫画、下载,UC都做得非常好;

其他的技术指标,省流量、省电量、流畅度,需要理性的数据支撑,但我相信UC也能排在前列(早在诺基亚的时代,UC的省流量模式就是看小说的一大利器)。

那QQ浏览器如何脱颖而出?

QQ系列的产品有自己天然的优势:庞大的社交链和用户群。

在工具的强大性比不上竞品的时候,通过简化使用流程,降低上手门槛,再用自己的平台优势去抢占新用户市场(包括儿童和中老年群体);

在用浏览器浏览资讯的时候,会有评论参与、分享话题的需求,这方面是QQ浏览器的方便之处;通过给浏览器赋予更多社交属性,QB也形成了自己的竞争壁垒;

在留足时间给团队去完善产品的功能与性能之后,未来QB会是UC的一大竞争对手。

在平时的工作中,要思考需求背后的产品特性以及通用性。 每日固定的时间做信息的抽取和总结,在信息繁杂的背景下,养成思考的习惯。

对于三思而后行的看法

首先,在多数情况下,我相信三思而后行是更好的选择。

但习惯是很难改的,这个和个人的性格有关。

像我这么不耐烦的性格,对于三思而后行,总是只能做到一思,二思,经常通盘思考觉得可以,就想着边做边想

这种情况,在生活中习惯后,就会带到工作中。而在之前的工作环境,因为对业务非常熟悉,这种习惯并没有造成什么影响。

最近犯了一些低级错误,先是看错产品的需求文档,在询问产品时才发现是自己没看清楚需求;

第二个是把下版本的内容提前提交,导致灰度分支无法正常创建;

晚上做题的时候,本来自己已经想好解法(但没有把解法写下来),几个细节都考虑过,结果还是不小心陷入越写越复杂的坑;其实之前已经养成先写题意再分析解法、最后实现的习惯,但是今天因为时间紧张,在没有完善的验证解法,就直接开始写,导致花费更多的时间。

对于某些问题,我知道某些流程是容易犯错的,就要规定好这个流程,并且尽可能避免自己越过。 在每次碰壁之后,提醒自己分析情况,如果是因为大意,如何避免下次又粗心。

经典重读

计算机主要组成部分:

  • 处理器;
  • 主存;
  • I/O模块;(键盘、鼠标、硬盘)
  • 总线;(模块间通信的支持)

操作系统的功能是什么?

管理协调各种硬件资源,为应用程序提供统一的抽象环境。

如何保证进程运行的独立性?

操作系统会保存进程运行时的所有状态信息,也就是上下文(也叫进程状态,包括PC程序计数器、寄存器、内存数据),通过系统调用中断进程运行,并在中断结束后恢复上下文继续运行原来进程。

线程是什么?

操作系统的最小执行单元,可共享进程的数据。

程序运行的栈是什么?

栈是内存中一组连续的存储单元。

栈内存为什么要用栈结构,不用队列、数组?

堆内存为什么要用堆结构,不用栈、队列?

栈结构特性符合函数调用特征,堆结构特性符合内存分配的特征。

中断是具体有哪些?

  • 程序中断;除0、访问越界等
  • 时钟中断;处理器时钟的周期性中断;
  • I/O中断;I/O设备开始、结束或者异常等情况的中断;
  • 硬件中断;掉电等;

多个中断如何处理?

中断优先级。

hello.c 如何编译成可执行文件?

编译与链接过程的思考

思考?:当一个链接器报错,无法解析一个引用时,代表了什么意思?

如果在文件A和文件B都定义了全局变量g,在文件C引用文件A和文件B的变量g,g变量会是哪个文件的变量?

符号冲突,默认无法编译通过。(可以通过编译指令强制编译,具体引用哪个文件,视引用A、B的顺序和编译器特性而定)

静态库和动态库的区别是什么?

详见静态库与动态库的思考

为什么有些错误会到链接时候才发生?

研读《程序员的自我修养—链接、装载与库》

总结

深感自己的不足,充电中。

萌萌的肥熊猫

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 正文
    • 如何快速上手一个庞大的工程?
    • 产品体验
    • 对于三思而后行的看法
    • 经典重读
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档