ChildhoodAndy

Results 20 issues of ChildhoodAndy

![](http://7u2lyz.com1.z0.glb.clouddn.com/thinking.png) 博客半年没有更新了,自己在嘀嗒拼车的这半年里,更多的是对自己写的代码的一些反思,特此书写记录下来。 - 代码如何写的优雅? - 这段代码是否写的很罗嗦? - 是否可以换一种写法或者是否能够应用某个设计模式很好的解决这个问题? - ··· # 谈代码的坏味道 有味道的代码永远都存在的,每个人都或多或少不定期的产生一些垃圾代码,而产生此类代码的原因一般都有哪些原因?我曾经问过自己这样的问题。常见的几个原因有以下几个: 1. 临近上线日期了,先用这段代码工作着吧。先不改了。(这样的解决方案根据实际情况并不是不可以,但当下版本时间充足了,还是花时间重新改写下为上策) 2. 破窗理论:代码里到处充斥者不良的代码,改动需要花很大的精力,在时间不太允许的情况下,被动的在不良代码上进行输出代码。 3. 知识或者经验上的短板:如果在某个知识上存在认知不足,很容易用自己仅有的可怜的不良方案来解决问题,殊不知,当你了解了它,换个思路,换个写法,代码能简洁很多。 4. 待补充··· 前两个跟开发项目时的心理有很大关系。而第三条,知识方面的问题,则需要我们不能停止学习,多反思。 而你,而我,中枪了吗?三个我都中了。我在输出着垃圾代码。 以上原因都是引起软件腐烂的原因,它们会增大软件的熵。我从我们的移动总监(后文简称周)身上也学到了不少东西。周来公司的第一件事,就是干掉项目架构中不合理的地方,重新编写,并且每个版本持续重构。周做的就是变化的催化剂,虽然一开始重构丢掉了一些东西,但某种意义上,他重新定义了一部分产品,包括交互和设计中不合理的东西。 ### 代码的坏味道都有哪些?你能闻的到吗? 1. 简单的逻辑写的异常罗嗦与复杂,容易引起错误就不说了,即便能够正确工作也要花半天理解,难以阅读; 2. 充斥着重复的代码:...

IOS
2015-11
编程反思系列

##### 1.Look towards player ``` C# using UnityEngine; using System.Collections; public class LookTowardMouse : MonoBehaviour { void Update () { //Mouse Position in the world. It's important to give it...

Unity3D
2015-10

在接触到开源项目 [Masonry](https://github.com/Masonry/Masonry) 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样 ``` objective-c UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10); [view1 mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(superview.mas_top).with.offset(padding.top); //with is an optional semantic filler make.left.equalTo(superview.mas_left).with.offset(padding.left); make.bottom.equalTo(superview.mas_bottom).with.offset(-padding.bottom); make.right.equalTo(superview.mas_right).with.offset(-padding.right); }]; ``` 其他语言比如 Lua,...

2015-01
IOS
Objective-C

**Xcode版本**:Xcode7.1 beta **iOS版本**:iOS9 beta 运行应用,报错:`Xcode process launch failed: Security`,应用由于安全性问题无法启动,以前没有此情况。 **解决办法**:设置-》通用-》描述文件-》开发商应用里的开发者帐号-》信任

IOS
2015-09

- [https://github.com/XVimProject/XVim/blob/master/Documents/Users/FeatureList.md](https://github.com/XVimProject/XVim/blob/master/Documents/Users/FeatureList.md) # Copy multi-lines 比如我要复制从第1行到第5行的数据,复制到第9行 1. 光标移到第5行任意位置,输入ma 2. 光标移到第1行任意位置,输入y'a(这一定要打这个“'”单引号,否则就进入“INSERT”状态了 3. 光标移到需要复制的行,输入p,行前复制输入大写P 或者 1. 把光标移到第9行 2. shift v 3. 再把光标移到第15行 4. y 5.再再把光标移到第16行 5. p 或者 Nyy命令复制从光标所在行开始的N行,一般在5行以内非常直观的数字时使用的比较多

2015-09
XVim

## 安装 - [https://github.com/supermarin/Alcatraz](https://github.com/supermarin/Alcatraz) - `curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh` ## 卸载 - `rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin` ## Xcode插件目录 - `~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins` ## Xcode UUID - `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`...

IOS
2015-09

1. 键值编码在什么情况适用? 2. 键值编码的弊端 - 属性路径的拼写:不能依赖智能提示,容易出现拼写错误 - 不能依赖编译器的检查,运行时才报错崩溃 3. 所有的键必须以小写字母开头

IOS
2015-09

## 问题描述 在心城的开发过程中,在处理音频部分时,有这么段代码 ``` objective-c NSError* error; self.audioRecorder = [[AVAudioRecorder alloc] initWithURL:[self getTempAudioPath] settings:settingDic error:&error];; //... if ([self.audioRecorder prepareToRecord]) { [self.audioRecorder record]; } ``` 在模拟器上崩溃,始终停在了`prepareToRecord`这一行,但真机测试没问题。怀疑是模拟器的bug。 [Stackoverflow问题讨论](http://stackoverflow.com/questions/10719758/preparetorecord-crashing) ## 解决办法(不是办法的办法) 在测试音频录制功能时,先暂时禁用掉Xcode的全局断点功能。之后,恢复正常开启全局断点。(默认快捷键:Command+Y)

2015-01
IOS

Hi, guys. I followed the guide in README to install XVIM on Xcode8 GM version, after removing code singature from Xcode, I restarted my Xcode8, but it cann't lanuch, just...

目前从Issue中以及日常使用中发现,有时候编译失败,常常不知道是哪里出了问题。除非具备日志或者断点调试能力,才能找到问题的准确原因。框架层应该能够抛出明确的失败原因,方便使用者排查问题。