金三银四的招聘季,许多程序员在寻找公开技术博客/资源/面经的时候也会顺便写点技术文章增加一些自己再其他方面的能力,哪怕只是锻炼自己的写作能力。
最近在掘金社区和公众号《iOS 大全》上面看到一篇关于 sunnyxx 大神的 神经病院objc runtime入院考试 最后一题的讲解文章:
@interface Sark : NSObject
@property (nonatomic, copy) NSString *name;
@end
@implementation Sark
- (void)speak {
NSLog(@"my name's %@", self.name);
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
id cls = [Sark class];
void *obj = &cls;
[(__bridge id)obj speak];
}
@end
产生的一定的兴趣。
这道题其实对于 iOS 开发者来说极为考验其基础知识,需要解决至少三个问题才能完整解答出来:
-
需要了解 runtime 发送消息的本质,为什么
[(__bridge id)obj speak];
可以调用成功 -
需要了解 iOS 中栈内存对内存的分配的本质,当然如果你可以打出为什么堆区和栈区是从两端向中间靠近、以及 iOS 设备是小端就更好了
- super 的本质,理解了 super 的的本质其实就能理解最后打印的值是
ViewController
对象,当然也考验了对 super 调用的本质
文章基本讲的没有问题,但却让我感到不舒服,或许是我本人过于敏感了吧
我们有时候会不知道具体写什么东西,或者说当我们遇到问题时发现很多东西都有前人已经写好的博客或录好的视频的时候,我们应该怎么去抉择?
如果我们选择要写的话,我们对前人的东西需不需要有些尊重。
这篇文章除了 demo
是自己写的 GDPerson
以外,其余一切都是参照 MJ 底层原理班的视频,连文章中的截图都是如此,直接截取人家视频的图片
在这里就不一一列举了,有些连视频的水印也没去除。
当我们写文章的时候,我们到底要不要尊重别人的知识产权?我感觉这是起码的,不能因为别人写的东西没什么人看,没什么人知道,就一味的抄袭?
参照的文章是我们技术创作的点子的来源,但是尊重一下别人,在文章中提一下有什么不行吗?
我们在阅读别人文章时,无论你觉得里面有什么值得搬运的或者对你有启发的,都行。但是在文章中提一下有什么不行吗?
你可以翻译别人的文章,但是在翻译别人书籍的时候,需要考虑到对方可能要出版,你去询问一下是不是最基本的礼貌,如果对方遵守开源协议,那么标明一下是不是举手之劳?
当我们写文章的时候,我们怕自己的文章被别人抄袭,别人分享的文章是不是也是如此呢?
别人对你的启发难道一文不值吗?
你觉得别人写得好,提一下, 别人绘图绘的好,来源的时候标注一下, 哪怕只是别人的代码给了你写作的思路,你利用其他语言实现 一下,是不是应该提及一下?
我们不能为写一篇技术博客,连脸都不要了吧。
尊重他人就是尊重自己。