首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

知道在iOS开发工作为什么有人4k有人40k

多写就没什么好说了,没有写过几十万行代码不能算熟悉一门语言。...多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考过程中,我们就会慢慢积累出一类问题 “最佳实践” 方式,成为自己宝贵经验。   ...所以,一定要有一个规划,按照自己正确规划去学习,去成长,别原地踏步。   ...多写就没什么好说了,没有写过几十万行代码不能算熟悉一门语言。...多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考过程中,我们就会慢慢积累出一类问题 “最佳实践” 方式,成为自己宝贵经验。

2.8K90

程序员不仅要学会百度,更要懂得提问

大神救我 你好 大佬求带 有没有人用过xxx(说一个框架,或者一个不知名项目) 大神这个是怎么做(直接要代码) 可以问个问题?(不说问题,等别人回答可不可以) 这个代码有什么错?...每种问题提问方式如下: 概念问题 概念问题,我们必须要描述准确,并且有自行了解过概念基础,例如: 不太清楚为什么要用面对对象,直接函数封装不行吗?...为什么协程要是用mysql连接池 等 代码问题 代码问题,我们需要截图代码,以及报错信息,并且说明自己要实现什么功能,例如: 想要实现文件上传,已经尝试了修改权限,但是不知道为什么代码会报错(附上错误信息...请问mysql连接池是怎么实现? 性能优化问题 性能优化问题,需要先确认慢地方,然后截图,例如: 发现这段代码执行特别慢,有什么错误?...(附上代码截图) 这段sql想实现xxxxx查询,但是非常慢,能优化?(附上sql语句,表结构,解释器截图) 今日作者: benny 不会UI前端不是好后端

87820
您找到你想要的搜索结果了吗?
是的
没有找到

怎样处理InterruptedException

我们从这段代码开始: ? 它做了什么?什么都没做,只是无止境消耗 CPU。我们能终止它?在 Java 中是不行。只有当你按下 Ctrl-C 来终止整个 JVM 时这段程序才会停止。...如果代码中不检测标识变量,也不调用 Thread.interrupted(),那么终止线程方式就只能按下 Ctrl-C 了。 现在你听明白这个逻辑了吗?希望是。...例如,Thread.sleep() 方法设计(一种最基本方法): ? 为什么要这么做?为什么不能等待并且不用去检查标识变量?相信一定有一个非常好理由。...知道想要是什么?不要丢失 InterruptedException,这一点非常重要。我们不能吞噬该异常并继续运行。这严重违背了 Java 多线程原则。...这就是认为处理方式

3.2K30

一行代码价值百万美元:从工程技术角度看云成本优化

已经看到了这一点,但你必须用不同方式构建软件,编写不一样代码,并以不同方式思考系统设计。...有时候,运维团队与开发团队是脱节知道我们都希望认为 DevOps 总是紧密合作,但事实并非总是如此),他们假设代码应该按照他们想那样运行。于是,它运行了很长时间,烧掉了 110 万美元。...我们写入 DynamoDB 记录没有时间戳,我们想知道它是什么时候写入为什么不添加个字段呢?这应该非常简单。修改代码只需一秒钟,有人测试了,然后部署了,现在已经上线并运行了。...不久之后看看账单,DynamoDB 成本翻了一番。这个稍微有点难发现。有人知道为什么添加时间戳代码会让 DynamoDB 成本比以前翻了一番?DynamoDB 按照 1K 元素为单元进行收费。...如果这个改动持续运行一年而没有人注意到——我会解释为什么可能没有人注意到它——它将成为一条价值 3900 万美元代码行。 确信会有人乞求那笔钱可以回来。

8710

软件设计目标和途径

手段和方法带有一定主观性;而途径则是在描述客观可供选择一种方式。 2 软件目的 在开始讨论软件设计之前先问自己一个最基本问题:我们为什么需要软件?...你说空运这不是降低了快递时间,和降低复杂性不是一样? 其实并不是,因为复杂性指的是无论你用什么快递方式,从广州到北京这段物理距离上时间消耗是无法消除,指的是这个过程你无法消除。...但是总觉得怪怪?是的,看起来是怪怪,明明收到货时间缩短了,怎么复杂性没有改变呢?所以这里就引申出另外一个概念:业务交互方式所带来影响。...5.2 可测试性 可理解性可以确保你可以快速理解现存代码意图,但是其真实行为呢?是不是和你所认为行为就是一致?上面说过:“代码只会按照你编写行为去执行,而不是按照你认为行为去执行”。...也许你代码消费方已经按照它实际行为去处理了,这时候你贸然把这个bug修复了,结果可能时消费方反而不能正常工作了。这时候这个错误测试其实也就变成了消费方一种契约测试。

37610

代码洁癖系列(二):命名艺术

或者说看完有人明白这段代码要做什么先来说一下问题: getThem是get什么?...list里存是什么 keys指的是什么,为什么遍历它 常量”1“意义是什么 这几个问题可能只有写这段代码的人才能解释(没错,就是)。...(为什么不是灾难?因为大部分人都是Ctrl+C/Ctrl+V,这样就减小一些出错几率。看来善用Ctrl+C/Ctrl+V还是很有必要) 做有意义区分 编译器要求我们在同一个区域内不能重复命名。...使用可以被搜索名称 像我们在一开始那段代码为什么要把常量“1”写成OrderConstatn.PAID,不仅是为了可读,也是为了可搜索,试想,如果你要找这段代码,去搜索数字1,会有多少结果?...我们可以很轻易判断出,他们组合在一起表示一个地址。那么把state单独拿出来呢?你还能知道它是什么意思

44320

两个事务并发写,能保证数据唯一

user表数据库原始状态 产品经理要求用户和用户之间,电话号码不能重复,为了保证这一点。我们想到了先查一下数据库,再判断一下,如果存在,就退出,否则插入一条数据。类似下面这样代码。...server层主要管是数据库链接,权限校验,以及sql语句校验和优化之类工作。请求打到存储引擎层,才是真正查询和更新数据操作。 大家都知道数据库是持久化存储,且最后都是把数据存到磁盘上。...由于读写内存速度比读写磁盘快得多。 所以引擎读写都快多了。 但这还不够,很多时候写操作,诉求就是把xx更新为xx,或插入xx,数据库光知道这一点就够了,根本不需要知道数据页原来长什么样子。...比方说想要把id=1这条数据phone_no字段更新为100,数据库知道这一点就够了,至于这条数据原来phone_no究竟是等于20,还是30,这根本不重要,反正最后都会变成想要phone_no...那一刻,感觉不是代码是人情世故。

60540

什么叫代码可读性?为什么说Kotlin可读性比Java好?

知道,如果某一天,这个作者突发奇想,决定全部使用大写字母来写代码——所有的类名、方法名、局部变量成员变量名等等全部使用大写,知道跟作者合作同事是不是会欣然耐心把作者所有的代码先读它个两三遍...其实,如果一段代码需要你多读个两三遍才能很好理解,这本身不就说明,这段代码可读性不高?...在比较两种不同风格可读性时候,你不能用具体某一个一次性片段来说明。 另外,这篇文章还暗含了这样一个观点,那就是,代码可读性,仅仅是指,看到一段代码,能不能理解这段代码含义。...理解一段代码速度 如果大家仔细思考下,你会发现,我们在理解一段代码时候,大多数情况下,我们是想要了解这段代码做了什么事情,是这段代码意图(Intention),而不是具体这个事情是怎么做。...在Google声明Kotlin成为安卓开发官方支持语言那一天,建了一个微信群。目前偶尔还是有人在群里面问,Kotlin值得学习?有风险?看到现在还在问这样问题,是觉得有点遗憾

1.1K70

为什么说Kotlin可读性比Java好?

其实,如果一段代码需要你多读个两三遍才能很好理解,这本身不就说明,这段代码可读性不高?...在比较两种不同风格可读性时候,你不能用具体某一个一次性片段来说明。 另外,这篇文章还暗含了这样一个观点,那就是,代码可读性,仅仅是指,看到一段代码,能不能理解这段代码含义。...理解一段代码速度 如果大家仔细思考下,你会发现,我们在理解一段代码时候,大多数情况下,我们是想要了解这段代码做了什么事情,是这段代码意图(Intention),而不是具体这个事情是怎么做。...当你可以使用 var 或 val 这两个看起来写起来都差别不大方式来定义一个东西时候,人们自然会想要去了解,这两者到底有什么区别?应该使用哪个?...在 Google 声明 Kotlin 成为安卓开发官方支持语言那一天,建了一个微信群。目前偶尔还是有人在群里面问,Kotlin 值得学习?有风险?看到现在还在问这样问题,是觉得有点遗憾

1.9K50

Linux 开发过程那么麻烦,是否值得?

如果别人之后需要查看这些代码,将无法理解为什么按照当时方式来完成这个变更。有些缺陷非常微妙,而且很容易重复出现。只看简短、非描述性提交消息,不一定有人知道在什么条件下会出现错误。...而再看看这段信息,阅读它知道为什么删除这些警告很安全(说明了当前情况很安全原因),以及如果在未来更改这段代码时应该要做些什么。相信,很多组织也会有人这么做。...如果我们讨论是一个 bug,就会知道它出现在哪些系统,发生在什么条件下,为什么没有影响到其他系统,以及应该做些什么来避免再次犯同样错误。...无论对于哪个组织,这都是 值得 :它能使别人(包括将来你)更容易理解为什么要做这个变更,为什么代码以这种方式运转,这可以使新人更快速地成长,可以防止重复出现相同 Bug,减少因偷偷挟带无关代码而造成破坏风险...希望 Linux 社区和朋友们能够理解:显然,这么做并不是不行。但如果这都不算是进入门槛,就不知道什么才是了。大家不得不花费时间、精力、脑力和计算机来重组、重写、返工,没有人想做这些事情。

42240

工作十年,却只有一年经验,只因重复了九年

有一些人虽然工作了很多年,但工作表现就像刚入行新人。他们几乎不学习软件开发基础知识 。除了最初几年有所成长,后期一直停滞不前,而且他们不明白为什么。...是啊,能不急,排到后边,还需要解决代码冲突问题。...你会逐渐忘记自己是从什么地方开始,要寻找什么以及这段代码完成了什么功能。 有经验开发人员知道代码如何设计。...他主要观点是不应该关注编码标准,因为他知道如何编码,应该只关注代码能否满足功能需求。 如果一个开发人员因为别人对他代码给出评论,而感觉被冒犯,只能表明他不具有真正开发经验。...缺乏经验开发人员会因为自己效率低下进而降低整个团队效率。他对待自己工作错误态度,会让其在职业发展中错失很多机会。 了解并避免这种错误态度和工作方式,是聪明人做法。

27910

既然Java反射可以访问和修改私有成员变量,那封装成private还有意义么?

但是从更高一层角度,即便使用了SecurityManager,还是可以通过各种方式拿到javabytecode,并做任意修改。...所以记得,如果你真有一段代码不允许被别人看/用,就不要把这段代码放到其他人可以碰到地方,而是做一个server,通过接口允许有限制访问。其他人想破解,只能破解你服务器网关和跳板机器。...虽然能绕开,但绕开代码很繁琐。久而久之就会厌倦。毕竟,代码应该为你工作,而不是你为代码工作。因此,经验是通常会用protected或者default来代替private。...有人说,private会避免新手误用。但问题是,大家从出道开始,自己或者周围同事朋友有谁曾经出过这个问题?IDE知道一个成员当前不能访问,就根本就不会提示。...如果一个人已经开始通过源代码/反编译研究“不能调用这个私有方法了“,他还算是一个菜鸟?他会不知道这里潜在风险?如果真的误用了,code review能过?测试能过

1.4K20

Google程序员他们是如何去做coder review

现在是添加此功能合适时机? 功能 这个CL做了开发者想要?开发者对这些代码设计初衷用户有好处?...“太复杂”通常意味着“代码读者不能很快理解”。这也意味着“当开发人员试图调用或修改这段代码时,他们很可能会引入bug。”...所有的评论都是必要?通常注释是解析这段代码为什么存在时候是相当有用,而不应该去解释某段代码正在做什么。如果代码本身不能解释清楚的话,意味着它更加需要简化了。...因为没有性能上好处,所以这段代码最好是单线程,而不是使用多线程。” 解释为什么 关于上面的正面示例,您将注意到一件事是,它帮助开发人员理解您为什么要发表评论。...通常,开发人员比您更接近代码,因此可能实际上他们对代码某些方面比您更了解一些。他们论点有意义?从代码健康角度来看,这有意义?如果是这样,请让他们知道他们是对,然后解决问题。

52220

程序员需要自问 10 个问题

在各类商业需求变化中有某种模式?技术进步方式中有某种模式?你看到同样错误反复地蹦出来? 理解就是领悟模式。 —— 以赛亚·伯林 该如何使它变得更简约?...通常作为web开发者,我们想提出复杂且可扩展解决方案。做一些极其复杂东西,会让你觉得自己就是宇宙主宰。而问题是你永远不能预测到产品和业务今后会怎样变化。 “架构”和编写代码更像是园艺而不是建筑。...你需要有能力去适应不断变化环境,解决方案越复杂,越难以适应。 简约是复杂最终形式。 ——列昂纳多·达·芬奇 为什么它是那样工作知道事情运作和知道它运作原因,这是两件完全不同事。...之前有人做过? 无论何时,如果你发现自己正在发明一个复杂算法,你很可能就是方法不对。除非你正忙于研究博士论文,一般已经有人解决了这个问题。 需要编写一个给离用户鼠标最近item添加标签算法?...如果看得更远,那是因为站在巨人肩上 ——艾萨克·牛顿 谁最先提到它? 你以为你知道REST? 你有读过Roy Fielding描述REST论文原文?你真的明白它用意

696100

Linux后台开发调试经验分享

而实际生产过程中,将商业程序做如下补充定义,觉得更合适:程序 = 数据结构 + 算法 + 业务逻辑(计算逻辑)+ 框架; 先说说为什么补充业务逻辑,有意义程序本身就是某种业务逻辑(计算逻辑)抽象...也许有人听过,也许有同学用过,如果感觉使用不好兄弟,可以告诉大家:应该是测试场景 + 场景驱动开发。对,仅仅是里面融入“场景”这个宾语,大家在做开发时候,就有目的性和针对性。...测试意图也很明显,确认代码是否按照正确编码意图在运行!其实自己写代码,自己还是可以轻松驾驭调试,原因就是自己清楚代码本意该如何运行,现在出现了什么问题。...程序员三大悲剧之一,就是不知道什么时候需要定位一个其他人写 bug。定位前也需要必须要理解另外一位程序员写这段代码意图是什么,否则没有办法定位。...能不能将表达同一个意思打印减少? 能不能在关键异常地方加上统计(输出统计)? 能不能不打? 能不能内存中记录关键信息,在想要时候,控制其打印时机?

57330

100%代码覆盖率悲剧

以下为译文: 十五年来,一直在推广TDD(测试驱动开发),或让开发写一些单元测试。不过,最近发现自己对于测试想法开始改变,现在更经常说是:“这段代码(模块)为什么要进行测试?...“不测试怎么知道这段代码能运行啊?” “这段代码功能看起来很简单,没有条件,没有循环,没有转换,没有任何复杂东西,只是一段简单代码。”...“但任何人都可能会来更改这段代码啊,若不测试怎么能知道这段代码有没有被动过!” “好,那我们假设有人想改动这段代码,他会做什么?他只会删除它。“ “但是如果必须要进行测试,你怎么写?”...“知道,但我还是决定使用Cucumber进行所有测试。” : “……” 能理解按照自己意志改造工具带来满足感,但这种解决方案让感到难过。 悲剧在哪里?...那么100%代码覆盖率是值得追求认为,我们有必要去了解这么做所带来代价是什么。 我们都有这样常识:项目完全不做单元测试,后果会非常让人痛苦。

95970

所有程序员都应该遵守11条规则

今天早上应该去健身房规则告诉要在周三前往健身房,今天是周三,因此要去健身房,就这么办了!...这条可能会有些争议,毕竟,作为程序员,我们工作不就是写代码?...写代码的确是我们工作一部分,但是,我们要尽可能努力去用最少代码来解决问题。 所谓“最少代码”并不是说我们只能用一个字母变量名或者其它方式来压缩我们代码。...写代码有很多乐趣,希望能写更多代码这几天经常忙于写代码并试图让它占据我更多时间,这也是为什么如此清晰地记得它有多么有趣。...(但愿如此) 9、你无法完全了解它 无论你学了多少知识,都会有大量你所不知道东西。 认识这一点非常重要,因为你可以驾驭你那些想要去学会所有东西发狂想法。 没能获取所有问题答案,这挺好

73180

作为一名开发者,它把惹毛了!!

)文章,那个时候,还不知道自己捅了多大一个“马蜂窝”。...显然,按照传统分支编写那种不良代码做法至今仍有大批开发者,使用 if-else 就是如此。 让非技术人员来评估编程任务 刚接触编程时,第一个项目竟然是由一个政治学硕士出身同事进行评估。...正如不懂技术产品经理提出了一个天马行空想法让技术来实现,像这样破事儿毫无疑问会惹毛开发人员。 “按照经验,XX种技术行之有效” 很多文章常常试图挑战别人做事方式。...就自己而言,经常会收到这种评论,“已有 20 年工作经验了,并且总是以相同方式来完成 X 任务,而且这样行之有效”之类。...阅读其他人代码 有时候我们真是讨厌死其他开发者代码了。尤其是当我们不确定它实际功能时,我们就喜欢疯狂吐槽这段代码有多么愚蠢(以掩盖我们看不懂这段代码事实)。

29430

JS学习系列 07 - 标签声明(Label Statement)

想要当 j = 2 时候就退出所有的for语句,打印最后 done ,你会怎么做?...也就是说,如果一段代码既能够以语句方式解析,也能用语法方式解析,在JS中,会优先按语句来解析。 { a : 1 } 复制代码 上面这段代码,在JS中执行结果是什么呢?...可以看到两个结果是不一样。 console是经过处理这里不能相信,watch是直接JS运行环境执行后结果,是正确为什么 { a : 1 } 结果会是 1 呢?..."age": 20}}') 复制代码 这里执行语句就会变成: { "name" : "liu", "age" : 20 } 复制代码 {}按照语句解析,执行里面的逗号表达式,我们知道逗号表达式要求每一项都必须是表达式...以后万一有人问你为什么 eval() 解析JSON要加括号呢? 这回知道怎么说了吧。

2.8K20

马斯克:抽大麻、藐视SEC,但我是个好CEO

前途似乎完全寄望于能否大规模生产Model 3,这是一款为普通人开发平价电动车。 但按照马斯克说法,他整个夏天都身处“生产地狱”,通过昼夜不停地工作来生产足够Model 3,以期实现盈利。...斯塔尔:还有人说有你在,特斯拉就无法生存。 马斯克:哈哈。 真好笑。 斯塔尔:他们说,这是因为你在夏天采取行为方式似乎太冲动,不是CEO该做事情? 马斯克:嗯,首先,是有点冲动。...斯塔尔:你童年快乐? 马斯克:不,童年很可怕。 斯塔尔:真的? 马斯克:真的。 斯塔尔:为什么会这样? 马斯克:童年充满暴力,并不快乐。 斯塔尔:知道你在学校受到欺凌。...而我只是想知道为什么那样做? 马斯克:嗯,意思是,守时不是强项。想,嗯,既然在所有其他车型上都没守时,那人们为什么认为我会突然在这个车型上守时? 斯塔尔:你反对者说你撒谎。...如果有人制造比特斯拉更好电动车,比我们好得多,导致我们不能出售汽车汽车,最终破产,仍然会认为这对世界是好事。 斯塔尔:这样你晚上就可以睡觉了。 马斯克:是的,因为有人制造了一些非常棒汽车。

42620
领券