Fork me on GitHub
摘要: 前几天公司组织了一期培训:汇报成就思想力。在这里总结、分享一下。 在各种不同的职业生涯中,写汇报可以说是避免不了的,即使是我等程序员也免不了要写些汇报性的资料给领导看,比如做新功能的研究报告,当前软件运行状态报告,评估需求可行性报告等,做到小领导的话要写的报告估计更多,可能为手下争取一些权益、福利什 阅读全文
posted @ 2016-04-25 09:31 布鲁克石 阅读(1183) 评论(5) 推荐(7) 编辑
摘要: 接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic 阅读全文
posted @ 2016-04-18 00:41 布鲁克石 阅读(5217) 评论(18) 推荐(32) 编辑
摘要: 前几天公司产品更新版本,更新完后不少用户反应原先保存的report的一些表在新版本打开后设置突然变了,本来选的第六个,现在打开变成第四个了。领导要求赶紧查出原因修改好,发紧急补丁。啊啊。。发紧急补丁可是影响team的performance的,年终奖要打折扣了。。 问题是很容易就查到了,那些设置是用E 阅读全文
posted @ 2016-04-11 09:32 布鲁克石 阅读(4905) 评论(60) 推荐(9) 编辑
摘要: 通过分析源码可以更好理解List<T>的工作方式,帮助我们写出更稳定的代码。 List<T>源码地址: https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic 阅读全文
posted @ 2016-04-09 00:53 布鲁克石 阅读(5638) 评论(21) 推荐(20) 编辑
摘要: 下面表达式比较的结果分别是什么? 1. []=="0" 2. []==0 3. "0"==0 4. []==false 5. []==[] 大家可以试试写下自己的结果,答案在后面。 这题主要考的是类型转换,[]这个数组对象在与原始值(primitive value)是怎么进行比较的。 javascr 阅读全文
posted @ 2016-03-23 09:29 布鲁克石 阅读(1351) 评论(10) 推荐(1) 编辑
摘要: github: https://github.com/brookshi/LLMAnimator ,欢迎star/fork 之前做android的时候需要给应用加些动画效果,在github上找到这个库: https://github.com/daimajia/AndroidViewAnimations 阅读全文
posted @ 2016-03-21 09:50 布鲁克石 阅读(900) 评论(1) 推荐(5) 编辑
摘要: 接上篇:你的C#代码是怎么跑起来的(一) 通过上篇文章知道了EXE文件的结构,现在来看看双击后是怎样运行的: 双击文件后OS Loader加载PE文件并解析,在PE Optional Header里找到基地址和RVA,通过这两个确定了程序的入口地址,这个地址指向MsCorEE.dll的_CorExe 阅读全文
posted @ 2016-03-15 10:13 布鲁克石 阅读(4545) 评论(14) 推荐(16) 编辑
摘要: 写了那么多C#代码,大家有没有想过自己写的代码编译后的可执行文件内部是什么样子,是怎样在系统上运行的? 编译成exe,然后双击exe文件运行,这中间到底发生了些什么呢,这篇先来剖析下exe内部的样子: 我们知道C#代码编译后的结果是IL(Intermediate Language),那生成的exe文 阅读全文
posted @ 2016-03-14 09:50 布鲁克石 阅读(6422) 评论(6) 推荐(14) 编辑
摘要: UWP采用的是纯扁平化的设计,个人感觉极端了点,整个世界都是平的,导致App分不清层次,看不出重点。其实扁平化是趋势,android, ios都在搞,问题是android, ios都可以很轻松的实现阴影来突出重点和分层,android的material design更是火了一通,其中也大量用到阴影( 阅读全文
posted @ 2016-03-07 09:42 布鲁克石 阅读(2768) 评论(14) 推荐(10) 编辑
摘要: 接上篇:30分钟?不需要,轻松读懂IL,这篇主要从IL入手来理解async/await的工作原理。 先简单介绍下async/await,这是.net 4.5引入的语法糖,配合Task使用可以非常优雅的写异步操作代码,它本身并不会去创建一个新线程,线程的工作还是由Task来做,async/await只 阅读全文
posted @ 2016-03-04 10:02 布鲁克石 阅读(5736) 评论(12) 推荐(24) 编辑