最近把手头这个安卓APP的所有事务性方法都写完了,有了以下体会,新手体会,老鸟轻拍   想写成优美代码的人一般都会有这样的想法: 一定要在写每一句代码,写每一个方法,构造每一个类的时候,都要记得优化:解耦以复用,拆分方法以复用,使用循环减少冗余,限制循环次数减少无效操作,等等..   这个想法一定没有错,但很多时候往往会是这样的情况: 当功能一复杂,比如你已经分解了几个方法,比如你已经使用了几层循环(有点过分...),比如在多线程中 你经常无法一步到位地完成那么多优化 这往往造成你写一句代码会思…
基础知识 结构体 除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体.结构体正是面向对象语言中的类的概念的雏形,比如: typedef struct{ float x; float y; }Point; 定义了一个平面坐标系中的一个点,点中有两个域,x 坐标和 y 坐标. 结构体中的域称为结构体的成员.结构体中的数据类型可以是简单数据类型,也可以是其他的结构体,甚至结构体本身还可以嵌套,比如,一个标准的链表结构可以进行如…
概述 今天介绍的插件主要是围绕编码规范的.有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」. 代码静态检查是有很多种类,例如圈复杂度.重复率等.业界提供了很多静态检查的插件来识别这些不合规的代码,帮助提高项目的质量.比较知名的一个产品是 SonarQube,它提供了一个「门禁」平台,集成了很多静态检查检查.下次有机会介绍一下该平台的搭建. 本文主要介绍 IDEA 中对于 Java 语言静态检查的好插件: Alibaba Java Coding Guidelines 阿里基于他们 Ja…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:NASA关于如何写出安全代码的10条军规.…
springboot项目启动成功后执行一段代码的两种方式 实现ApplicationRunner接口 package com.lnjecit.lifecycle; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; import org.sp…
转载自http://developer.51cto.com/art/201601/503802.htm 面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点. 基础知识 结构体 除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体.结构体正是面向对象语言中的类的概念的…
闪屏,就是SplashScreen,也能够说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后.自己主动关闭.  第一种方式: android的实现很easy,使用Handler对象的postDelayed方法就能够实现.在这种方法里传递一个Runnable对象和一个延迟的时间.该方法实现了一个延迟运行的效果,延迟的时间由第2个參数指定.单位是毫秒. 第一个參数是Runnable对象,里面包括了延迟后须要运行的操作. 详细的实现步骤为: 1.实现一个闪屏窗口.设置背景图片等. 2.实现主窗口…
一.变量相关 (1)变量数量的定义 NO:滥用变量 let kpi = 4; // 定义好了之后再也没用过 function example() { var a = 1; var b = 2; var c = a+b; var d = c+1; var e = d+a; return e; } YES: 数据只使用一次或不使用就无需装到变量中 let kpi = 4; // 没用的就删除掉,不然过三个月自己都不敢删,怕是不是那用到了 function example() { var a = 1;…
由于C++支持函数重载,在编译函数代码的时候会加上参数类型的信息,而C编译只有函数名信息,导致C++直接调用C代码在链接的时候会出现函数未定义的问题.解决这种问题有两种方法.方法一:在写C代码的时候考虑到C++可能会调用这些函数,增加extern “C”:方法二:如果C++要调用的C代码没有考虑到这个问题,在包含c代码的时候加上extenrn"C"的标志.例如下面有个c文件cfile.h中定义了sumOfab(int a,int b),cfile.c中实现了这个函数.另外的cpp文件需…
1.第一种使用tortoiseGit插件: 链接:https://pan.baidu.com/s/1ANDydwfaaVcUaqZDJWc_BQ 提取码:qgxt a.首先在setting中的Git中添加user&email b.通过git clone填写url和branch,选择下载工程的不同分支上的代码 2.通过 git bash here命令的方式 git软件获取方式: 链接:https://pan.baidu.com/s/1Qo5viRxpLmtzLd8JTmpszw 提取码:g2fd…