- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 cleanCode-对象和数据结构
对象的意义在于封装。而不是继承和多态。如果失去了封装,对象便会退化为数据的集合,或者说数据结构。继承和封装也变成了无用的玩具。代码将失去活力,走向死亡。那什么是封装?封装就是隐藏实现,是遵守约定,是拥抱变化。封装做好了,代码便会好。封装失败了,代码便会慢慢僵化,走向深渊。这也是很多人的误区,以为对象是数据和对数据操作的集合。错了,对象是对美好未来的约定。 没有对象是万万不能的,然而...
2019-01-17 22:39:44
1055
原创 cleanCode-格式
格式是写代码是所要遵守的一些简单的规则。和前面的一些建议相比,它似乎没那么重要,每个公司甚至每个程序员都有一些自己的风格,不尽相同。马丁从代码格式的角度提出的一些建议,并说明了原因。对于年轻的程序员来说,值得一读。 每个公司都会制定自己的一套代码规范,来确保程序员们保持同样的代码风格。尽管每个公司都各不相同,但是它们的目标都是一个:提升开发者沟通的效率。不光是公司的同事,还有未来的...
2019-01-17 22:39:18
220
原创 cleanCode-注释
作为程序员,无论是工作还是学习,注释都如影随形。好的注释可以帮助我们理解代码,提高阅读代码的速度。同样,坏的注释也可以给我们帮不少的倒忙。那么,注释究竟在代码中扮演了什么样的角色?写注释的时候要注意些什么来保证它持续发挥正面的作用呢? 1.对于作者这种英语母语的程序员来说,注释只是一种“必须的恶”,因为可以通过代码的表达力来描述代码本身的意图。但是对于非英语母语的程序员来说,注释应该具有更...
2019-01-14 22:56:05
336
原创 js异步回调的一些思考
最近接触的一些问题,让我对代码中的异步回调的使用产生了一些思考。在一段js代码中调用两个彼此独立的函数,那么这两个函数会完全按照调用的顺序来执行。例如:var func1 = function(){...};var func2 = function(){...};func1();func2();执行顺序是先执行func1,再执行func2。引入异步回调之后,情况会稍微复杂一点:var...
2019-01-10 06:54:07
555
原创 cleanCode-函数
函数或者方法(以下统称为函数),是我们日常编程工作中不可或缺的一部分。然而,我们真的把函数写好了吗?结合我自己工作中接触的代码和书中的建议,总结一些写好函数的要素。 1.函数应该短小。这条建议更像一个评价标准而不是约束,因为单纯的约束函数的长度往往不会收到很好的效果。但是,如果函数的长度太长,我们则需要提醒自己“代码还没有写完”。如果按照下面的建议依次来规整自己的代码,函数的长度...
2019-01-06 21:17:26
269
原创 cleanCode-有意义的命名
代码当中充满了命名,方法、函数、类或者接口。命名是代码表达力的重要组成部分。没有好的命名,代码整洁也无从谈起。下面谈一谈关于命名的那些事。 不同实体(类、方法等)之间的命名规则略有不同,此外大同小异。他们有一个最共同的目的,就是要有表达力,让代码更清晰。遵循如下几条规则,就能事半功倍。 1.命名要足够的细节,能够完全描述被命名的实体的实际作用。不要使用注释去进行额外的解释...
2019-01-06 21:16:49
348
原创 cleanCode-态度
专业的程序员不该因任何外界因素的影响去否定维护整洁代码的必要性,而是应该在考虑了代码整洁性的基础上去向外界传达信息。有时候这会给领导一些延期的压力。但最重要的是要表达:代码很烂,没时间整理。 童子军军规:让营地比你来时更干净。...
2019-01-06 21:16:04
152
原创 技术之围
15年毕业至今快接近3年了,先在一家小外包公司干了2年多,后来进了一家比较大的外包公司(几百人的样子)至今。今天被领导约谈,聊了聊工作的事情,有感而发。 作为一个程序员,总要有一点技术的情怀(万一真的未来某天就成了呢)。但是这个情怀,却往往只存在于幻想之中。像我现在这样,每天上班和各色人等沟通交流业务,或者在已有项目上复制粘贴(框架还挺不错的)。一天下来,留给自己的时...
2018-02-09 00:54:50
176
原创 spring添加事务控制
在一般的数据库驱动的项目中,事务控制是至关重要的。没有它,数据也就没有任何意义了。spring提供了多种事务控制的配置,我的选择是基于jdbc的事务管理+Transactional注解的方式。因为Transactional注解的许多属性都提供了默认值,而这些默认值恰好都是我需要的。所以我的配置看起来非常简单。首先,在applicationContext.xml文件中配置如下:然
2017-09-21 09:38:53
901
原创 spring+mysql记录
最近打算做一个小项目,正好也借此机会把spring前前后后的配置捋一遍。其实说再多也无非是配置而已,顶天了看看源码,了解一下spring的原理。但是在实际工作中这玩意接触的机会实在是太少了,能够用全spring提供的功能的机会就更少了。所以每次看完spring特性过几天都忘记了,真正用的时候常常想不起来,还是得到网上各种搜各种copy。心累。今天记录一下,权当备忘。1.mysql我事先在电
2017-09-20 21:20:39
940
原创 springtest+junit4测试
分享一篇不错的文章,地址:http://blog.youkuaiyun.com/shan9liang/article/details/40452469文中详细阐述了springtest+junit4的强大和一般用法,我就不多说了。接下来我记录一下自己配置和使用springtest+junit4的过程。1.添加jar依赖2.创建测试类在src/test/java路径下创建一个测试类,并进行必
2017-09-20 11:00:36
460
原创 spring中配置log4j
无论是日常开发还是运维,日志记录都是不可或缺的。log4j作为一款流行的日志记录工具,简单易用。我工作中也一直在用log4j,但是每次配置log4j的时候都是上网现查现用,用完即丢,实在惭愧。特以本文记录一下我又一次配置log4j的过程(捂脸)。发现一篇很不错的介绍log4j的文章,地址:http://swiftlet.net/archives/683下面开始:1.引入log4j依赖
2017-09-20 08:43:02
453
转载 ubuntu安装截图工具Shutter
原文地址:http://blog.youkuaiyun.com/hanshileiai/article/details/46843713一、安装截图工具 Shutter1. 添加安装包软件源sudo add-apt-repository ppa:shutter/ppa2. 更新源并安装 shuttersudo apt-get updatesudo apt-get install sh
2017-09-19 08:49:19
446
原创 ubuntu16.04安装eclipse+tomcat7+maven
作为一个javaee开发者,肯定要有一套心仪的开发工具,我的选择是jdk1.8+eclipse+tomcat+maven+git。let's go!安装jdk这个不多说了,戳我之前的文章http://blog.youkuaiyun.com/qq_32747453/article/details/78016703。安装tomcat首先下载tomcat7,地址:http://tomcat.ap
2017-09-18 19:41:40
646
原创 ubuntu kylin16.04安装jdk1.8
首先,捋一下安装jdk的思路。1.下载jdk2.将jdk解压缩到目标目录下3.配置环境变量接下来一步一步的来。下载jdk1.8网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html我选择的是 jdk-8u144-linux-x64.tar.gz。
2017-09-18 10:45:53
1515
原创 koa之处理器模块化
在之前的文章中,已经可以实现url与处理器函数之间的映射。但是把代码直接写在app.js中似乎十分不妥,一个是会造成app.js文件的冗长,二是不好扩展和修改。为了解决这个问题,可以将处理函数封装为一个个模块,在启动服务器时再将url和处理器模块映射起来。这样就可以解决如上所述的问题。但是除了将处理器函数封装为单独的模块之外,还需要一段将url和处理器模块映射起来的代码用于在服务器启动的时候执
2017-09-16 10:40:50
756
原创 koa-router介绍
在springMVC的9个组件中,有一个很重要的组件是handlermapping。这个组件的作用就是url处理器映射。在nodeJs中,负责这部分功能的是一个叫做koa-router的模块。koa-router用法首先在package.json配置文件中添加koa-router依赖,然后执行npm install命令加载依赖。然后在app.js中导入koa-router模块。co
2017-09-16 09:55:30
14759
1
原创 koa2用法简述
koa是一个web框架,接收http请求,返回http响应。一般用法一般的用法如下:var koa = require('koa');//导入koa模块var app = koa();//中间件处理业务app.use(function *(){ this.body = 'Hello World';});//接收http响应,监听端口3000app.listen(
2017-09-16 06:20:26
1829
原创 nodeJs之koa入门
前言koa是基于nodeJs的web框架,它封装了nodeJs的http模块。本篇文章的目的就是在vscode上利用koa开发一个简单的web页面。vscode项目设置vscode的项目下都有一个.vscode文件夹,里面有一个launch.json文件。这个launch.json文件里面有运行项目的配置,我的配置如下:{"version":"0.2.0",
2017-09-15 22:08:27
2533
原创 nodeJs之准备工作
最近打算了解一下nodeJs,因为廖雪峰老师提供了非常好的教程,网址:https://www.liaoxuefeng.com/。本系列文章也算是记录自己学习和实践nodeJs的一个心路历程吧。操作系统我用的是ubantu kylin,也是第一次使用ubantu,为了一个compiz折腾了一天也没个结果,算了不说了。安装nodeJs直接官网下载,网址:https://nodejs.org
2017-09-15 21:09:52
267
转载 ubantu安装notepad++
Ubuntu下的安装方法:sudo add-apt-repository ppa:notepadqq-team/notepadqqsudo apt-get updatesudo apt-get install notepadqqUbuntu下的卸载方法:sudo apt-get remove notepadqqsudo add-apt-repositor
2017-09-13 06:23:27
22920
转载 base64原理
开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编解码器,方便阅读文章的同时来实验。 一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的
2017-09-08 14:05:28
206
原创 eclipse+maven+springmvc实践
版本eclipse的版本是oxygenmaven的版本是3.0.5jdk版本是1.8spring版本是3.2.8一 eclipse集成mavenoxygen版本的eclipse自带maven插件,如果没有maven插件可以安装m2e。由于目前不确定如何删除eclipse自带的maven插件而且我在使用的过程中还没发现什么不得了的缺陷。暂且用之。但是maven就不要用ecli
2017-08-25 10:52:04
2014
转载 spring面试题目
Spring 概述1. 什么是spring?spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring
2017-08-23 15:12:45
234
原创 spring中bean的生命周期
依赖注入是spring的核心,spring从开发者手中接管了管理java对象的工作,以管理bean的方式对他们进行创建、装配,最终组合成可以使用的java应用。本文简单描述了spring在管理bean的过程中发生的一些事情,也就是bean的生命周期。 bean的生命周期从创建spring容器开始,销毁bean实例为止,其中除了创建实例、注入依赖等步骤,还包括了一系列可供扩展的扩展点,如下
2017-08-23 12:15:23
260
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人