自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Geek马走日

Stay hungry, stay young!

  • 博客(399)
  • 资源 (16)
  • 收藏
  • 关注

原创 【Android 界面效果34】Android里Service的bindService()和startService()混合使用深入分析

.先讲讲怎么使用bindService()绑定服务    应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder  绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个Servic

2016-01-03 19:50:01 369

原创 【开源项目6】介绍MenuDrawer这个牛x的控件,实现左右出菜单,上下出菜单

现在很多应用都很潇洒的从左边屏幕手势一划出个左边的隐藏菜单,右边一划出个隐藏菜单,上边一划出个隐藏菜单,下边一划出个隐藏菜单。或者像android的API16左右的激活列表项的功能。很多人肯定都很着迷。呵呵,其实实现很简单的,大部分的人都是使用我说的这个控件改的,不是说国内的人水平低,而是国外真是有牛人啊。好了无图不真相,大家可以看看截图。如果想自己玩玩,或者要代码啥的,直接下去吧。htt

2016-01-03 19:49:58 282

原创 【开源项目5】测滑菜单MenuDrawer的使用以及解析

在安卓中左右侧滑菜单的使用用的比ios多得多,可能是谷歌带的头吧,几乎所有的谷歌应用都有侧滑菜单。谷歌没有开放这个源码,在一个成熟的开源代码出现之前,大家都是各自为战,偶尔能看到一个勉强实现了的。MenuDrawer和其他的侧滑代码不同,他是一个性能高效且成熟的库。在menuDraer出现之前我还用过slidemenu,效果差不多,但感觉没有MenuDrawer流畅,后来看了MenuDrawe

2016-01-03 19:49:56 270

原创 【Linux/Ubuntu学习2】ubuntu-ubuntu10.04使用wine安装SourceInsight

1. 环境:ubuntu10.042. 安装 wine  关于 wine ,请参考这里。通过网络安装:$ sudo apt-get install wine3. 安装 SourceInsight  在这里下载 SourceInsight 安装包。下载完成后,用 wine 安装。$ wine InsightSetup.exe安装方法与在 windows一样,序列号(任选其

2016-01-03 19:49:53 261

原创 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用

2016-01-03 19:49:51 305

原创 【Shell脚本学习5】第一个Shell脚本

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。输入一些代码:#!/bin/bashecho "Hello World !"“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。

2016-01-03 19:49:48 304

原创 【Shell脚本学习4】几种常见的Shell

上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。bashbash是Linux标准默认的shell,本教程也基于bash讲解。bash由Brian Fox和Chet Ramey共同

2016-01-03 19:49:46 444

原创 【Shell脚本学习3】什么时候使用Shell

因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。因此,之所以要使用Shell脚本是基于:简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。开发容易:可以在短时间内完成一个功能强大又妤用的脚

2016-01-03 19:49:43 262

原创 【Shell脚本学习2】Shell脚本语言与编译型语言的差异

大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。编译型语言很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(o

2016-01-03 19:49:41 274

原创 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大

2016-01-03 19:49:38 306

原创 【Android 界面效果33】二级listview列表

今天来实现以下大众点评客户端的横向listview二级列表,先看一下样式。   这种横向的listview二级列表在手机软件上还不太常见,但是使用过平板的都应该知道,在平板上市比较常见的。可能是因为平板屏幕比较大,而且也能展现更多的内容。    下面来看一下我的实现步骤。    首先自定义一个listview,代码如下: [html] view plaincopy

2016-01-03 19:49:30 364

原创 【Android 界面效果32】ImageView中XML属性src和background的区别

background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。 此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式,示例代码如下: <ImageView android:

2016-01-03 19:49:23 284

原创 【算法初阶1】算法概述

-------------------------------天禄貔貅  王冬冬 技术博客-------------------------------1.1什么是算法?字面义:算法就是用于计算的方法,通过这种方法可以达到预期的结果。专业定义:算法是模型分析的一组可行的、确定的和有穷的规则。从程序设计角度:算法由一系列求解问题的指令构成,能够根据规则的输入在有限的时间内获得

2016-01-03 19:49:18 296

原创 【Android 界面效果31】Android--侧滑菜单应用的实现

侧滑菜单应用现在非常多,而且实现方式也多种多样。通过在网上的多方查找,我找到郭霖少侠的这篇文章:http://blog.csdn.net/guolin_blog/article/details/8744400,研究之后收获颇多。同时记得以前看过一篇讲Scroller实现滑屏的文章:http://www.cnblogs.com/wanqieddy/archive/2012/05/05/2484534

2016-01-03 19:49:12 430

原创 【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片

本文主要是写关于ImageSwitcher结合Gallery组件如何展示SDCard中的资源图片,相信大家都看过API Demo 中也有关于这个例子的,但API Demo 中的例子是展示工程中Drawable目录下的资源图片,这样调用系统的API比较容易实现,但我们在开发项目过程中,但有些图片还不能完全确定下来,例如需要展示相机拍照的图片,SDCard中某个目录下的资源图片等功能。其实系统中也提供

2016-01-03 19:49:07 359

原创 【Linux/Ubuntu学习1】Linux /etc 目录详解

/etc目录  包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d    启动、或改变运行级时运行的scripts或scripts的目录. /etc/passwd    用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息. /etc/fdprm    软盘参数

2016-01-03 19:49:02 649

原创 【Mood-8】IT男!五更天!

男人从毕业到30岁之间所承受的叠加的压力,赡养父母、结婚生子、升职加薪、工作压力、生活质量,这些东西可以压得我们喘不过起来,也成为我们成长的动力, 我们累,但不说累,我们闷着头做事儿,不张扬,但每个都撑起一个家庭!IT男!五更天!尊敬这些编制美好的人儿!

2016-01-03 19:48:53 258

原创 【Android 界面效果29】研究一下Android滑屏的功能的原理,及scrollTo和scrollBy两个方法

Android中的滑屏功能的原理是很值得我们去研究的,在知道这两个原理之前,有必要先说说View的两个重要方法,它们就是scrollTo 和scrollBy。  Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对   Canvas对象进行了一定的操作,例如 : translate(平移)、clipRect(剪切)等,以便达到我们的对该C

2016-01-03 19:48:48 415

原创 【Android 界面效果28】Android应用中五种常用的menu

Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu。1、左右推出的Menu      前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新。最早使用左右推出菜单的,听说是Facebook,我不确定消息的真实性。左右推出菜单如图,                                                     2

2016-01-03 19:48:41 268

原创 【开源项目4】Android ExpandableListView

如果你对Android提供的Android ExpandableListView并不满意,一心想要实现诸如Spotify应用那般的效果,那么SlideExpandableListView绝对是你最好的选择。该库允许你自定义每个列表项目中的ListView,一旦用户点击某个按钮,即可实现该列表项目区域滑动。         4.jpg (82.84 KB, 下

2016-01-03 19:48:33 218

原创 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果

本文主要介绍如何利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果。即google play首页、新浪微博消息(at、评论、私信、广播)页面的效果。ViewPager+Fragment组合为google推荐方式,比TabActivity+Activity的效率高的多。这个效果相当好!1、新建ViewPager的layout,内容如下 

2016-01-03 19:48:28 264

原创 【Android 界面效果26】listview android:cacheColorHint,android:listSelector属性作用

ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919,要改变这种情况,只需要调用listView的setCacheColorHint(0),颜色值设置为0或者xml文件中listView的属性 

2016-01-03 19:48:26 216

原创 【Android 界面效果25】android中include标签的使用

在一个项目中我们可能会需要用到相同的布局设计,如果都写在一个xml文件中,代码显得很冗余,并且可读性也很差,所以我们可以把相同布局的代码单独写成一个模块,然后用到的时候可以通过 标签来重用layout代码。     app_title.xml: [xhtml] view plaincopy xml version="1.0" encoding="utf-8"

2016-01-03 19:48:19 250

原创 【Android 界面效果24】Intent和PendingIntent的区别

intent英文意思是意图,pending表示即将发生或来临的事情。 PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadc

2016-01-03 19:48:15 199

原创 【Android 界面效果23】LayoutInflater作用及使用

作用: 1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素. 方法:    Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setCo

2016-01-03 19:48:12 331

原创 【Android Api 翻译4】android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)

Contacts Provider 电话簿(注:联系人,联络人、通信录)提供者 ------------------------------- QUICKVIEW 快速概览 * Android's repository of information about people. * Android的关于人的信息的仓库。 * Syncs with

2016-01-03 19:48:08 2093

原创 【Android Api 翻译3】android api 完整翻译之Application Fundamentals (学习android必须知道的)

Android应用程序是用Java编程语言编写的。Android SDK工具把应用程序的代码、数据和资源文件一起编译到一个Android程序包中(这个程序包是以.apk为后缀的归档文件),一个Android应用程序就是一个单独.apk文件中的所有内容,并且Android设备使用这个文件来安装应用程序。安装在设备上的每个Android应用程序都生活在它们自己的安全沙箱中:1.    

2016-01-03 19:48:02 260

原创 【Mood-7】tell 2 my gf-miss u not sudden but always

#sorry not coming 2 see u the national day holiday! I'm BULL in the land,fighting 4 u and babies!  # Love story in the novel  always be in perfect of the moment doping with a hint of sadness, th

2016-01-03 19:47:58 445

原创 【Mood-6】空气显示触摸屏、智能钱夹

空气显示触摸屏这款屏幕借助从设备中送出的空气和水在空中形成投影,可以用来展示计算机或平板中的图像。此外,它还可以实现人机互动。你只需在虚拟屏幕前挥动双手,就能完成一系列的隔空操作,如滑动、捏合、缩放等。  模块化拼接手机你是否试想过,有一天手机也能由“乐高积木”拼成。模块化拼接手机由一块多孔母板和多个模块拼成,每一模块有独立的可插拔式电路和特定功能,如:照相机、电池

2016-01-03 19:47:54 310

原创 【Android 界面效果22】Android的Tab与TabHost

Tab与TabHost这就是Tab,而盛放Tab的容器就是TabHost如何实现??每一个Tab还对应了一个布局,这个就有点好玩了。一个Activity,对应了多个功能布局。①新建一个Tab项目,注意,不要生成main Activity这里不要选②在包里面新建一个类MyTab,继承于TabActivity其实,TabActivit

2016-01-03 19:47:51 272

原创 【Android 界面效果21】Android ViewPager使用详解

这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。看一下api的图片,  ViewPager的功能就是可以使视图滑动,就像Lanucher左右

2016-01-03 19:47:46 344

原创 【Android 界面效果20】Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

看到这个例子的标题RoundRects,我的第一感觉是介绍RoundRectShape, 打开例子看了代码却是使用GradientDrawable来实现的。GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形。GradientDrawable允许指定绘制图形的种类:LINE,OVAL,RECTANGLE或是RING ,颜色渐变支持LINEAR_G

2016-01-03 19:47:44 967

原创 【Android 界面效果19】Android中shape的使用

Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:                                                                        android:startColor="#ff8c00"          

2016-01-03 19:47:41 250

原创 【Android 界面效果18】Android软件开发之常用系统控件界面整理

[java] view plaincopyprint? "font-size:18px">1.文本框TextView  TextView的作用是用来显示一个文本框,下面我用两种方式为大家呈现TextView, 第一种是通过xml布局文件呈现 ,第二种是通过代码来呈现,由此可见Android 的界面开发真的是非常灵活。  public class TextViewActi

2016-01-03 19:47:34 317

原创 【Android 界面效果17】Android手机平板两不误,使用Fragment实现兼容手机和平板的程序

记得我之前参与开发过一个华为的项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad。然后为了节省人力,公司无节操地让Android手机和Android Pad都由我们团队开发。当时项目组定的方案是,制作两个版本的App,一个手机版,一个Pad版。由于当时手机版的主体功能已经做的差不多了,所以Pad版基本上就是把手机版的代码完全拷过来,然后再根据平板的特性部分稍

2016-01-03 19:47:29 512

原创 【Android 界面效果16】关于android四大组件的总结

Android四大组件:Activity、Service、Broadcast receiver、Content provider  在Android中,一个应用程序可以使用其它应用程序的组件,这是Android系统一个非常重要的特性。例如,你编写的应用程序需要显示一个可以滚动的图片列表,如果其它某个应用程序已经开发了具有此功能的组件并对外发布了此组件以使其它应用程序能够使用此组件,因此你可以直

2016-01-03 19:47:27 920

原创 【Mood-5】14条建议,使你的IT职业生涯更上一层楼

升值为企业IT部门的领导者,并非一件易事。从一般大众中脱颖而出,则更不容易。2013是一个好年头,据专家报告显示,6月所有新工作中,10%来自技术领域。这对于那些希望高升、换岗、跳槽的IT技术人员来说是个好消息。但要想这些职业“变动”成为可能,你需要让雇佣者感受到你可以带来更多价值。根据CIO、职业顾问及专家的观点,仅把工作干好还不够。你需要展示出投身于技术发展的奉献精神及伴随技术发展而发

2016-01-03 19:47:22 310

原创 【Android 界面效果15】Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)

Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高。    一个相对完善的自定义控件在布局文件中和java代码中都应能灵活设置属性。另外在普通的布局中和AdapterView中都应能正确绘制,这就要求合理设计onMeasure方法,下文中会做比较详细的讲解。    本文原创,如需转载,请注明转载地址:htt

2016-01-03 19:47:20 444

原创 【开源项目3】Android快速开源框架--afinal

Afinal简介 Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用;使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。目前Afin

2016-01-03 19:47:13 257

原创 【Android Api 翻译2】Android Testing(1) 浅尝Android测试的奥秘

------- 源自梦想、永远是你IT事业的好友、只是勇敢地说出我学到! ----------仅供学习和交流使用,翻译不好勿喷,请只摘除不合适的地方TestingThe Android framework includes an integrated testing framework that helps you test all aspects of your appli

2016-01-03 19:47:05 241

算法方法论.xmind

算法方法论.xmind

2021-08-07

Android全套资料-助你从初级到高级工程师part5

Android全套资料 是整理的从初级开发到高级开发工程师必备的技术文档资料,有计划的学习这些资料,有助于你更快的向高薪高能进发! 由于csdn上传限制,我将资料分成了5份,大家请耐心下载: Android全套资料-助你从初级到高级工程师part1 Android全套资料-助你从初级到高级工程师part2 Android全套资料-助你从初级到高级工程师part3 Android全套资料-助你从初级到高级工程师part4 Android全套资料-助你从初级到高级工程师part5

2015-09-05

Android全套资料-助你从初级到高级工程师part4

Android全套资料 是整理的从初级开发到高级开发工程师必备的技术文档资料,有计划的学习这些资料,有助于你更快的向高薪高能进发! 由于csdn上传限制,我将资料分成了5份,大家请耐心下载: Android全套资料-助你从初级到高级工程师part1 Android全套资料-助你从初级到高级工程师part2 Android全套资料-助你从初级到高级工程师part3 Android全套资料-助你从初级到高级工程师part4 Android全套资料-助你从初级到高级工程师part5

2015-09-05

Android全套资料-助你从初级到高级工程师part3

Android全套资料 是整理的从初级开发到高级开发工程师必备的技术文档资料,有计划的学习这些资料,有助于你更快的向高薪高能进发! 由于csdn上传限制,我将资料分成了5份,大家请耐心下载: Android全套资料-助你从初级到高级工程师part1 Android全套资料-助你从初级到高级工程师part2 Android全套资料-助你从初级到高级工程师part3 Android全套资料-助你从初级到高级工程师part4 Android全套资料-助你从初级到高级工程师part5

2015-09-05

Android全套资料-助你从初级到高级工程师part2

Android全套资料 是整理的从初级开发到高级开发工程师必备的技术文档资料,有计划的学习这些资料,有助于你更快的向高薪高能进发! 由于csdn上传限制,我将资料分成了5份,大家请耐心下载: Android全套资料-助你从初级到高级工程师part1 Android全套资料-助你从初级到高级工程师part2 Android全套资料-助你从初级到高级工程师part3 Android全套资料-助你从初级到高级工程师part4 Android全套资料-助你从初级到高级工程师part5

2015-09-05

Android全套资料-助你从初级到高级工程师part1

Android全套资料 是整理的从初级开发到高级开发工程师必备的技术文档资料,有计划的学习这些资料,有助于你更快的向高薪高能进发! 由于csdn上传限制,我将资料分成了5份,大家请耐心下载: Android全套资料-助你从初级到高级工程师part1 Android全套资料-助你从初级到高级工程师part2 Android全套资料-助你从初级到高级工程师part3 Android全套资料-助你从初级到高级工程师part4 Android全套资料-助你从初级到高级工程师part5

2015-09-05

Linux Shell脚本攻略.pdf

Linux Shell脚本攻略 全 学习Linux开发 Linux下Android开发 学习shell脚本的必备书籍

2015-09-04

Linux内核源代码情景分析.pdf

Linux内核源代码情景分析 pdf 全册 Linux进阶必备书籍

2015-09-04

30天自制操作系统(PDF全)

30天自制操作系统 PDF 扫描版 全本 高大上!

2015-08-19

Support4Demos 源码

Support4Demos 源码,app,fragment,widget精选

2015-02-11

Support13Demos 源码

Support13Demos 源码,viewpager研究精选

2015-02-11

Android 圆形图像的实现 自定义ImageView

实现应用中常常出现的圆形头像,不是利用图片遮盖的方法。设计成圆的会使整个界面布局变的优雅漂亮

2015-02-06

重构 英文版

小提示 本资料仅供个人学习参考,请勿用于商业用途,如有能力请尽量购买正版图书,也是对作者的支持。 重构:改善既有代码的设计 中文版 软件开发的不朽经典 2010年人民邮电再版中文版(清晰PDF) 本书提供作译者介绍   Martin Fowler世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他的多部著作《分析模式》、《UML精粹》和《企业应用架构模式》等都已经成为脍炙人口的经典。 熊节 ThoughtWorks中国公司的高级咨询师、架构师和项目经理,在大型企业应用及互联网应用的架构和管理方面拥有丰富经验。作为敏捷方法学顾问和重构专家,他拥有在各种技术平台、编程语言、软件形态的项目中实施重构的丰富经验,并曾主持极具挑战性的超大规.. 目录回到顶部↑第1章 重构,第一个案例 1 1.1 起点 1 1.2 重构的第一步 7 1.3 分解并重组statement() 8 1.4 运用多态取代与价格相关的条件逻辑 34 1.5 结语 52 第2章 重构原则 53 2.1 何谓重构 53 2.2 为何重构 55 2.3 何时重构 57 2.4 怎么对经理说 60 2.5 重构的难题 62 2.6 重构与设计 66 2.7 重构与性能 69 2.8 重构起源何处 71 第3章 代码的坏味道 75 3.1 duplicated code(重复代码) 76 3.2 long method(过长函数) 76 3.3 large class(过大的类) 78 3.4 long parameter list(过长参数列) 78 .3.5 divergent change(发散式变化) 79 3.6 shotgun surgery(霰弹式修改) 80 3.7 feature envy(依恋情结) 80 3.8 data clumps(数据泥团) 81 3.9 primitive obsession(基本类型偏执) 81 3.10 switch statements(switch惊悚现身) 82 3.11 parallel inheritancehierarchies(平行继承体系) 83 3.12 lazy class(冗赘类) 83 3.13 speculative generality(夸夸其谈未来性) 83 3.14 temporary field(令人迷惑的暂时字段) 84 3.15 message chains(过度耦合的消息链) 84 3.16 middle man(中间人) 85 3.17 inappropriate intimacy(狎昵关系) 85 3.18 alternative classes with different interfaces(异曲同工的类) 85 3.19 incomplete library class(不完美的库类) 86 3.20 data class(纯稚的数据类) 86 3.21 refused bequest(被拒绝的遗赠) 87 3.22 comments(过多的注释) 87 第4章 构筑测试体系 89 4.1 自测试代码的价值 89 4.2 junit测试框架 91 4.3 添加更多测试 97 第5章 重构列表 103 5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 extract method(提炼函数) 110 6.2 inline method(内联函数) 117 6.3 inline temp(内联临时变量) 119 6.4 replace temp with query(以查询取代临时变量) 120 6.5 introduce explaining variable(引入解释性变量) 124 6.6 split temporary variable(分解临时变量) 128 6.7 remove assignments to parameters(移除对参数的赋值) 131 6.8 replace method with method object(以函数对象取代函数) 135 6.9 substitute algorithm(替换算法) 139 第7章 在对象之间搬移特性 141 7.1 move method(搬移函数) 142 7.2 move field(搬移字段) 146 7.3 extract class(提炼类) 149 7.4 inline class(将类内联化) 154 7.5 hide delegate(隐藏“委托关系”) 157 7.6 remove middle man(移除中间人) 160 7.7 introduce foreign method(引入外加函数) 162 7.8 introduce local extension(引入本地扩展) 164 第8章 重新组织数据 169 8.1 self encapsulate field(自封装字段) 171 8.2 replace data value with object(以对象取代数据值) 175 8.3 change value to reference(将值对象改为引用对象) 179 8.4 change reference to value(将引用对象改为值对象) 183 8.5 replace array with object(以对象取代数组) 186 8.6 duplicate observed data(复制“被监视数据”) 189 8.7 change unidirectional association to bidirectional(将单向关联改为双向关联) 197 8.8 change bidirectional association to unidirectional(将双向关联改为单向关联) 200 8.9 replace magic number with symbolic constant(以字面常量取代魔法数) 204 8.10 encapsulate field(封装字段) 206 8.11 encapsulate collection(封装集合) 208 8.12 replace record with data class(以数据类取代记录) 217 8.13 replace type code with class(以类取代类型码) 218 8.14 replace type code with subclasses(以子类取代类型码) 223 8.15 replace type code with state/strategy(以state/strategy取代类型码) 227 8.16 replace subclass with fields(以字段取代子类) 232 第9章 简化条件表达式 237 9.1 decompose conditional(分解条件表达式) 238 9.2 consolidate conditional expression(合并条件表达式) 240 9.3 consolidate duplicate conditional fragments(合并重复的条件片段) 243 9.4 remove control flag(移除控制标记) 245 9.5 replace nested conditional with guard clauses(以卫语句取代嵌套条件表达式) 250 9.6 replace conditional with polymorphism(以多态取代条件表达式) 255 9.7 introduce null object(引入null对象) 260 9.8 introduce assertion(引入断言) 267 第10章 简化函数调用 271 10.1 rename method(函数改名) 273 10.2 add parameter(添加参数) 275 10.3 remove parameter(移除参数) 277 10.4 separate query from modifier(将查询函数和修改函数分离) 279 10.5 parameterize method(令函数携带参数) 283 10.6 replace parameter with explicit methods(以明确函数取代参数) 285 10.7 preserve whole object(保持对象完整) 288 10.8 replace parameter with methods(以函数取代参数) 292 10.9 introduce parameter object(引入参数对象) 295 10.10 remove setting method(移除设值函数) 300 10.11 hide method(隐藏函数) 303 10.12 replace constructor with factory method(以工厂函数取代构造函数) 304 10.13 encapsulate downcast(封装向下转型) 308 10.14 replace error code with exception(以异常取代错误码) 310 10.15 replace exception with test(以测试取代异常) 315 第11章 处理概括关系 319 11.1 pull up field(字段上移) 320 11.2 pull up method(函数上移) 322 11.3 pull up constructor body(构造函数本体上移) 325 11.4 push down method(函数下移) 328 11.5 push down field(字段下移) 329 11.6 extract subclass(提炼子类) 330 11.7 extract superclass(提炼超类) 336 11.8 extract interface(提炼接口) 341 11.9 collapse hierarchy(折叠继承体系) 344 11.10 form tem plate method(塑造模板函数) 345 11.11 replace inheritance with delegation(以委托取代继承) 352 11.12 replace delegation with inheritance(以继承取代委托) 355 第12章 大型重构 359 12.1 tease apart inheritance(梳理并分解继承体系) 362 12.2 convert procedural design to objects(将过程化设计转化为对象设计) 368 12.3 separate domain from presentation(将领域和表述/显示分离) 370 12.4 extract hierarchy(提炼继承体系) 375 第13章 重构,复用与现实 379 13.1 现实的检验 380 13.2 为什么开发者不愿意重构他们的程序 381 13.3 再论现实的检验 394 13.4 重构的资源和参考资料 394 13.5 从重构联想到软件复用和技术传播 395 13.6 小结 397 13.7 参考文献 397 第14章 重构工具 401 14.1 使用工具进行重构 401 14.2 重构工具的技术标准 403 14.3 重构工具的实用标准 405 14.4 小结 407 第15章 总结 409 参考书目 413 要点列表 417 索引 419

2015-01-07

代码大全 英文版

[代码大全2中文版(完整清晰版)].pdf

2015-01-07

Shell脚本学习指南

录 序 前言 第1章 背景知识 1.1 UNIX简史 1.2 软件工具的原则 1.3 小结 第2章 入门 2.1 脚本编程语言与编译型语言的差异 2.2 为什么要使用Shell脚本 2.3 一个简单的脚本 2.4 自给自足的脚本:位于第一行的#! 2.5 Shell的基本元素 2.6 访问Shell脚本的参数 2.7 简单的执行跟踪 2.8 国际化与本地化 2.9 小结 第3章 查找与替换 3.1 查找文本 3.2 正则表达式 3.3 字段处理 3.4 小结 第4章 文本处理工具 4.1 排序文本 4.2 删除重复 4.3 重新格式化段落 4.4 计算行数、字数以及字符数 4.5 打印 4.6 提取开头或结尾数行 4.7 小结 第5章 管道的神奇魔力 5.1 从结构化文本文件中提取数据 5.2 针对Web的结构型数据 5.3 文字解谜好帮手 5.4 单词列表 5.5 标签列表 5.6 小结 第6章 变量、判断、重复动作 6.1 变量与算术 6.2 退出状态 6.3 case 语句 6.4 循环 6.5 函数 6.6 小结 第7章 输入/输出、文件与命令执行 7.1 标准输入、标准输出与标准错误输出 7.2 使用read读取行 7.3 关于重定向 7.4 printf的完整介绍 7.5 波浪号展开与通配符 7.6 命令替换 7.7 引用 7.8 执行顺序与eval 7.9 内建命令 7.10 小结 第8章 产生脚本 8.1 路径查找 8.2 软件构建自动化 8.3 小结 第9章 awk的惊人表现 9.1 awk命令行 9.2 awk程序模型 9.3 程序元素 9.4 记录与字段 9.5 模式与操作 9.6 在awk里的单行程序 9.7 语句 9.8 用户定义函数 9.9 字符串函数 9.10 数值函数 9.11 小结 第10章 文件处理 10.1 列出文件 10.2 使用touch更新修改时间 10.3 临时性文件的建立与使用 10.4 寻找文件 10.5 执行命令:xargs 10.6 文件系统的空间信息 10.7 比较文件 10.8 小结 第11章 扩展实例:合并用户数据库 11.1 问题描述 11.2 密码文件 11.3 合并密码文件 11.4 改变文件所有权 11.5 其他真实世界的议题 11.6 小结 第12章 拼写检查 12.1 spell程序 12.2 最初的UNIX拼写检查原型 12.3 改良的ispell与aspell 12.4 在awk内的拼写检查程序 12.5 小结 第13章 进程 13.1 进程建立 13.2 进程列表 13.3 进程控制与删除 13.4 进程系统调用的追踪 13.5 进程账 13.6 延迟的进程调度 13.7 /proc文件系统 13.8 小结 第14章 Shell可移植性议题与扩展 14.1 迷思 14.2 bash的shopt命令 14.3 共通的扩展 14.4 下载信息 14.5 其他扩展的Bourne式Shell 14.6 Shell版本 14.7 Shell初始化与终止 14.8 小结 第15章 安全的Shell脚本:起点 15.1 安全性Shell脚本提示 15.2 限制性Shell 15.3 特洛伊木马 15.4 为Shell脚本设置setuid:坏主意 15.5 ksh93与特权模式 15.6 小结 附录A 编写手册页 附录B 文件与文件系统 附录C 重要的UNIX命令 参考书目

2015-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除