201603-30 40条Android开发优化建议 HOT 以下是开始Android编程的好方法:1、找一些与你想开发的功能类似的代码2、调整它,尝试让它变成你想要的3、回顾开发中遇到的问题4、使用StackOverflow来解决遇到的问题对每个你想实现的东西重复上述过程。采用这种方法能够激励你,因为你在保持不断迭代更新,在这个过程里面你会学到很多。当然,当你发布应用的时候你还要去做一些更深入的东西。从一些能够正常编译的代码到成为一个应用程序,这是一个质的飞跃,比起iOS,... 继续阅读 >
201603-26 学习yykit 一些小小总结 昨天看了yykit注意到有一段给category动态添加属性的宏,也没深入研究,今天来仔细看看#ifndefYYSYNTH_DYNAMIC_PROPERTY_OBJECT#defineYYSYNTH_DYNAMIC_PROPERTY_OBJECT(_getter_,_setter_,_association_,_type_)\-(void)_setter_:(_type_)object{\[selfwillChangeValueForKey:@#_getter_];\objc_setAssociatedObject(self,_cmd,object,OBJC_ASSOCIATION_##_association_);\[selfdidChangeValu... 继续阅读 >
201603-24 工具 | To-Do List,你选哪一款 在工作和生活中,我们经常做安排,下午三点去超市买8样东西,周三晚上去听公开课,周五要写周报,周六去打羽毛球,每月25号要还信用卡,21号还房贷,诸如此类,这就是我们的待办事项列表,也叫To-DoList。To-DoList的好处善用To-DoList可以提高我们的生活与工作效率(程序员在代码中写下的TODO是最大谎言之一,先按下不表)。我觉得主要有三点:聚焦。大脑容量有限,注意力资源很宝贵,应当关注重要的事儿,不断聚... 继续阅读 >
201603-24 谈谈编译和运行 [作者按]今天hackernews爆炸性的新闻是我们敬爱的葛老头:AndyGrove去了。70后,80后大多听过这个响当当的名字,也听过(或者读过)『只有偏执狂才能生存』这本书。在90年代,葛鲁夫和盖茨一样,基本上等同于他们所缔造的王国,以及他们创立的Wintel联盟。如今90后创业者们所津津乐道的所谓创业大师们总结的:专注,独特,10倍速因子等等其实是拾了老爷子牙慧的。老爷子还有一本据说更好的书:Highoutputmanagement... 继续阅读 >
201603-24 正则表达式30分钟入门教程 本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人:)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,... 继续阅读 >
201603-23 杂谈现代高级编程语言 几个月之前,Slashdot转载了RobertHarper教授的一篇博客,说卡内基梅隆大学计算机系把”面向对象编程“从大一新生的必修课中删掉了,其原因是Object-orientedprogramming…isboth anti-modular and anti-parallel byitsverynature.这两个原因(anti-modular和anti-parallel)都是很重的指责了;尤其是anti-modular,因为OO的基本思想通常被理解成“封装”,从而实现模块化。我是在1995年第一次... 继续阅读 >
201603-23 IBM中国编译器团队电面总结 燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢——如今又到了哪里呢?不知不觉,我们已经面临毕业的时候.此时,总是尴尬的.以前总有毕业遥遥无期的想法,但是未来的迷茫,面临的选择猛然向自己扑来时,不禁惊讶时间的流逝.lifeisshortlifeislong孔子认... 继续阅读 >
201603-22 初学者的编程自学指南 关于这份指南之前有不少学弟学妹问我如何学习编程,根据DRY法则(Don'tRepeatYourself),还是把自己学习过程中的一些经验整理成一篇博客吧。由于本人目前也处在学习的阶段,文章中列出来的内容也并未全部学习过,所以文章的客观性可能存在一些问题,还望读者自行判断。这份指南会不定期更新,有好的建议也可以留言或者给我发邮件。准备需要的所有工具就是一台可以连接上网络的电脑以及你本人。科学上... 继续阅读 >
201603-22 Spring Boot工程结构推荐 今天看了一位简书上朋友发来的工程,于是想到应该要写这么一篇。前人总结的最佳实践案例可以帮助我们免去很多不必要的麻烦。花点时间来看一下本文,绝对物超所值。工程结构(最佳实践)SpringBoot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不少特殊的配置工作。典型示例... 继续阅读 >
201603-22 iOS程序员必看之热门书单 只要是一说想学iOS,可能很多人都会建议你去学Swift,但是,这可能是个误区,iOS开发的第一技能是精通Objective-C,原因很简单,swift目前还不成熟,第三方库不够多,而且swift只是表面上简单,其实水很深。其实,小编建议的是,多看书!毕竟看一本适合自己的好书,就是和大神一次倾心的谈话。下面双手奉上iOS程序员应看的几大热门书单。(针对于下面推荐的书籍中大家可以先去关注英文原版,毕竟翻译的书籍中都有一定的语法... 继续阅读 >
201603-10 成为Web开发人员的7个简单步骤 你想成为一名Web开发人员,但现在你面前有这样一个问题,那就是你没有在高科技行业工作的经验。你上了一些课程,也花了时间在个人编码项目上,但是你的简历上关于“经验”的部分仍然不为企业承认。过渡到一个新的领域从来就不是一件简单的事。你不知道你是否准备好了,不知道是否有人会认真对你,也不知道你是否能得到工作。相信我,不要让那些怀疑阻碍你的前进。事实上,它并不难——只要你在跳跃前做好充分的准备。这七个... 继续阅读 >
201603-08 TIOBE 2016年3月编程语言排行榜:编程语言呈内部发展趋势 尽管软件行业发展迅速,热门编程语言的发展似乎却成了例外,始终未有太大改变。如果我们将当前TIOBE编程语言排行榜的前十拿出来,与十年前的前十做以比对,就会发现这两份名单完全相同!唯一的不同在于:其中VisualBasic、PHP和Perl与同为十大热门却更现代的C#、Python和JavaScript交换了位置。没错,在这十年间Objective-C确曾进入过十大热门语言,甚至还攀升到了前三的位置,不过在苹果宣布用Swift代替Objective-C之后,它... 继续阅读 >
201603-04 Jetty 8长连接上的又一个坑 Jetty8长连接的超时断开连接的机制:超时连接机制针对IO传输过程中的数据阻塞时间超过一定阈值时,断开该连接。阻塞指当前处于数据传输阶段,但是连续指定时间内都没有发出或者接收到任何数据时,Jetty系统断开该连接。强调一下,只有在数据传输过程中才会有超时机制。在服务端处理已经收到的数据时是不会检测该超时时间的。下面看一下具体的代码实现。在jetty8.1.17版本中,由以下代码控制一个连接的空闲、非空闲和断开检查... 继续阅读 >
201603-04 浅谈iOS的文件操作 一、沙盒路径沙盒主路径:是程序运行期间系统会生成一个专属的沙盒路径,应用程序在使用期间非代码的文件都存储在当前的文件夹路径里面我们通过以下代码可以打印出沙盒主路径NSString*homePath=NSHomeDirectory();NSLog(@"%@",homePath);我们根据打印出的路径前往文件夹可以进入包含DocumentsLibrary和tmp文件夹的文件夹这个就是沙盒主路径Documents:用来存储永久性的数据的文件程序运行时所需... 继续阅读 >
201603-03 编码过程中,需要注意的地方 记得之前写游戏玩家类的时候,对于玩家数据的修改,我们总是提供这样的接口。比如是对玩家金钱的修改。publicPlayer{privateintmoney=0;publicvoidaddMoney(intmoney){this.money=this.money+money;}publicvoiddeductMoney(intmoney){this.money=this.money-money;}publicintgetMoney(){returnthis.money;}}而避免提供这样的接口publicPlayer{privateintmoney=0;publicvoi... 继续阅读 >
201603-03 IO多路复用深入浅出 Java程序员进阶三条必经之路:数据库、虚拟机、异步通信。前言从零单排高性能问题,这次轮到异步通信了。这个领域入门有点难,需要了解UNIX五种IO模型和TCP协议,熟练使用三大异步通信框架:Netty、NodeJS、Tornado。目前所有标榜异步的通信框架用的都不是异步IO模型,而是IO多路复用中的epoll。因为Python提供了对Linux内核API的友好封装,所以我选择Python来学习IO多路复用。IO多路复用select举一个E... 继续阅读 >
201603-02 数据科学能回答什么样的问题? 机器学习是数据科学的发动机。每种机器学习方法(也称为算法)获取数据,反复咀嚼,输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。机器学习算法可以根据它们所回答的问题分成几组。这种分组能够在你提炼问题时帮助思考。A类还是B类?这组算法被称为二类分类(two-classclassification)。适用于任何有两个可能选项的问题:是或否、开或关、吸烟或不吸烟、买或... 继续阅读 >
201602-29 Lambda表达式的意义 Lambda表达式又称为闭包或匿名方法,形式如下:(int x, int y) -> x-y;() -> 2;(String s) -> { System.out.println(s); };第一个lambda表达式接收x和y这两个整形参数并返回它们的差;第二个lambda表达式不接收任何参数,直接返回整数2;第三个lambda表达式接收一个字符串并把它打印到控制台。从上面的例子看,lambda表达式的语法结构和函数几乎是一样的,... 继续阅读 >
201602-29 ios 照相机和相册的调用 一个简单的功能,上传照片或者拍照可以用到.//首先遵循两个代理<UIImagePickerControllerDelegate,UINavigationControllerDelegate>//我们创建一个btn和一个imageview,btn用来触发事件调起照相机和相册的功能,imageview用来展示选取或者拍摄的图片.self.view.backgroundColor=[UIColorwhiteColor];UIButton*btn=[[UIButtonalloc]initWithFrame:CGRectMake(100,100,200,50)];btn.backgroundColor=[UIColorblac... 继续阅读 >
201602-26 iOS绘图 介绍说到iOS的绘图肯定就是CoreGraphics。CoreGraphicsFramework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变、遮蔽、图像数据管理、图像的创建、遮罩以及PDF文档的创建、显示和分析。获取图形上下文CoreGraphicsAPI所有的操作都在一个上下文中进行。所以在绘图之前需要获取该上下文并传入执行渲染... 继续阅读 >
201602-25 Java语法基础 Java语法基础几乎还是借鉴C语言的,不多说了,免得挨打关键字Key关键字含义abstract表明类或者成员方法具有抽象属性assert用来进行程序调试boolean基本数据类型之一,布尔类型break提前跳出一个块byte基本数据类型之一,字节类型catch用在异常处理中,... 继续阅读 >
201602-25 iOS获取设备信息与应用信息 图片来源于网络iOS获取设备信息在iOS开发过程中,有时我们想获取到设备的系统信息,这时就需要使用到UIDevice类,具体常用信息获取方式如下:获取设备唯一标识,同一个开发商的APP获取到的标识是相同的,与UDID不同的是,在我们删除了设备上同一个开发商的所有APP之后,下次获取到的将是不同的标识[[UIDevicecurrentDevice]identifierForVendor];获取设备系统名称,如iPhoneOS[[UIDevicecurrentDevice]systemName];... 继续阅读 >
201602-25 如何编写函数? 程序中曾经包含子程序和函数(可能我没有经历这种年代),如今,程序中仅有函数这种方式保留下来。编程语言中的函数,分为内置函数和自定义函数或类方法。内置函数可以直接调用,而自定义函数是程序员编写的。函数是程序的极其重要的组成部分,要写好,需要遵守一些原则。函数要短小。函数中不应该容得下嵌套结构,如if...else等。在if..else、while、for或foreach等嵌套结构中,代码不应该超过一行,这唯一一行代码,是对函数... 继续阅读 >
201602-24 Block的整理 1.在B控制器的.h文件中定义声明Block属性typedefvoid(^MyBlock)(NSString*);@interfaceBViewControl:UIViewController@property(nonatomic,copy)MyBlockreturnBlock;@end第一行代码是为要声明的Block重新定义了一个名字MyBlock这样,下面在使用的时候就会很方便。第三行是定义的一个Block属性2. B控制器.m文件中-(void)viewWillDisappear:(BOOL)animated{if(self.MyBlock){self.MyBlock(... 继续阅读 >