??xml version="1.0" encoding="utf-8" standalone="yes"?>
“如何?#8221;是一个开发h员在团队生活中需要知道的最有h值的信息。但遗憾的是Q有些h却认是开发h员在目中唯一要知道的事情?/p>
我们不能q么认ؓ?/p>
如果不知道自己做的究竟是个什么东西,即是最高效的Ruby on Rails家伙Q最熟练的Spring开发h员,或PHP~程者,也不可能做出最有h值的东西?/p>
你们中有多少人,曄写出了APIQ但却不能说出它们将被在哪里、如何用?有多h曄气的q问“你们要怎么用它们?我按照规g里的要求?7个Web Service都开发完了,但现在你们只用了其中?个。该歅R?#8221;
我认为,一个开发h员如果想把工作出色的完成Q除了要知道“怎么d”外,q必ȝ道自q竟做的是什么?/p>
然而,知道做的是什么和如何做,q还不够?/p>
我深信一个开发h员还需要知道和理解“Z么这样做“。只有当你知道这些后Q你才能开发出最有h值的产品?/p>
Z么会有这个项目?Z么需要这L产品Q该死,Z么会有这L公司Q每个h都需要问q样的问题。当知道q理解了“Z?#8221;后,我们才能做出最优的解决Ҏ?/p>
知道?#8220;Z?#8221;Q我们才能真正的理解目的目标,产品的目标和公司的目标。它能激励我们,因ؓ我们看到了大蓝景?/p>
理解?#8220;Z?#8221;会决策更加准确?/p>
我们要坚持从是什?/strong> ?Z?/strong>入手。这h们就知道如何最好的d了?/p>
q一招对我很有效。而你又是如何C成功之\的呢Q?/p>
[英文出处]Q?a minmax_bound="true">Developers should know How, What and Why 所谓谚语,是用言意赅、通俗易懂的方式传达h生箴a和普遍真理的话,它们能很好地帮助你处理生zd工作上的事情。也正因如此Q我才整理了10句编E谚语,每位开发h员都应该铭记他们Q武装自己?/p>
1. 无风不v?/strong> 《注重实效的E序员》一书中有这样一D话解释“破窗理论”Q不要留着“破窗?#8221;Q低劣的设计、错误的决策或者糟p的代码Q不修。发C个就修一个。如 果没有够的旉q行适当的修理,先把它保留h。或怽?以把出问题的代码攑ֈ注释中,或是昄“未实?#8221;消息Q或用虚拟数据加以替代。采取一些措施,防止q一步的恶化。这表明局势尚在掌控之中?br minmax_bound="true" />
毫无疑问QY件已成ؓ我们生活中一个既基本又重要的一部分。正因如此,开发优U软g格外重要。乒乓球游戏中的Bug是一回事Q航天飞机导向系l或者航 IZ通管制系l中的Bug是另外一回事。Slashdot曑֏表一文,讲述了单单Google News的一个小p使一家公司股蒸?1.4亿美元。其他例子参见?a minmax_bound="true">软gBug引发的十ơ严重后?/a>》。这些例子便说明了我们正行着多大的权利。你今天写的代码Q无Z是否有意Q说不定有朝一日在重要的应用程序中z上用场Q这x都o人害怕。编写正合格的代码吧! 问题Q装SQL 2005 信息时Q老是昄“COM Plus Catalog Requirement(warning)”Q我用的是XPpȝQ装的是开发版~~ 原因Q你?font face="Simsun" color="#ff0000">COM+应用E序出错Q?/font>装的IIS有问题所_?/p>
解决ҎQ?/p>
“开?#8221;->“讄”->“控制面板”->“理工具”->“lg服务”中,“控制台根目录”->“lg服务”->“计算?#8221;->“我的电脑”->“COM+应用E序”中, Q?Q?/font> 到com+应用E序q一步时,弹出:"执行最后操作时发生错误,错误代码80080005-服务器运行失?的错?咋办? 一?/font> 开始运行msdtc -resetlog Q问题解冻I能打开了?/font> 二、再看看 Distributed Transaction Coordinator 服务?/font>?/font>有打开 三、重装IIS Q?Q?/font> 回到“ “COM+应用E序” ”中, 有一?#8220;IIS Out-Of-Process Pooled”鼠标右键“属?#8221;--“标识”--?#8220;此用?#8221;调整?#8220;交互式用?-目前已登录的用户”。然?#8220;定”Q再鼠标右键“属?#8221;--“启动”?/font> Q?Q?/font> 设下IIS?/font> “ 目录安全性选项?/font> ”---- “ 匿名讉K与控?/font> ” , ?#8220;集成Windowsw䆾验证”打勾
]]>
代码设计是否p糕Q从某些地方可以看出来。比如:
E序员们通常U它们作代码异味(Code Smell)Q但是就我个?#8220;代码警报”q个名字更ؓ合适一些,因ؓ它有更高的紧q感的含义。根本问题处理不当,l将引火烧n?br minmax_bound="true" />
译注QCode Smell中文译名一般ؓ“代码异味”Q或“代码味道”Q它是提CZ码中某个地方存在错误的一个暗C,开发h员可以通过q种smellQ异呻I在代码中q捕到问题?br minmax_bound="true" />
2. 预防ZQ治疗ؓ?/strong>
20世纪80q代Q丰田公司的水作业U因为它在缺陷预防方法上的革新变得出了名的高效。每个发现自q部门有问题的成员都有权暂停生产。这个方法意在宁可发现问题后马上暂定生、解决问题,也不能由其l生产而导致更手且更高代L修复/更换/召回后的问题?br minmax_bound="true" />
E序员M做出生率就{同于快速编码的错误臆断。许多程序员都会不假思烦地直接着手代码设计。可惜,q种Leeroy Jenkins式鲁莽的做法多会D软g的开发过E变得很邋遢Q拙劣的代码需要不断的监测和修改——也可能会被d地替换。最l,生率所涉及到的因素?不仅仅是写代码所消耗的旉了,q要有调试的旉。稍不留就?#8220;捡了芝麻丢了西瓜”。(因小失大。)
译注QLeeroy Jenkins 行ؓQWOW游戏中一位玩家不֤家独w一敌,D灭团?br minmax_bound="true" />
3. 不要孤注一?/strong> Q过度依赖某人)
一个Y件开发团队的公共要素Qbus factorQ是指那些会影响整个目q程的核心开发h员的L。比如某车撞了或某h生孩子或某hx了,目可能׃无序Q甚至会搁置?br minmax_bound="true" />
译注Q?bus factor x公共要素Q比M开发过E中的一些共同因素。如果挤?bus ?factor 多Qbus p不稳定,所以要控制?bus factor Q以免问题发生?br minmax_bound="true" />
换句话说Q如果你的团队突然失M一个主力成员,你会怎么办?生意依旧q行q是戛然而止Q?br minmax_bound="true" />
很不q,大多数Y件团队都陷入了后一U情c这些团队把他们的开发员培养成了只会处理他们自己专业领域?#8220;领域专家”。v初,q看h是一个比较合?的方法。它 Ҏ车制造装配生产线很适用Q但是ؓ什么对软g开发团队就不行呢?毕竟Q想让每个成员都掌握所~程序的l微差别也不太可能,对吧Q?br minmax_bound="true" />
问题是开发h员不ҎL替换掉。虽然当每位成员都可用时Q?#8220;抽屉Ҏ”很有效,但如果当“领域专家”H然因h事变动、疾病或H发事故而无法工作时Q?抽屉 Ҏ立马土崩瓦解。(所以,QY件团队有一些看似多余实则重要的后备力量是至关重要。代码复查、结对编E和共有代码可用成功营造一个环境,在这个环境中Q?每位开发h员至表面上是熟悉自己非擅长领域之外的系l部分?br minmax_bound="true" />
4. U瓜得瓜Q种豆得?/strong>
我们见过整洁良好的系l在出现“破窗”之后立马崩溃。虽然促使Y件崩溃的原因q有其他因素Q我们将在其他地Ҏ触到Q,但(?#8220;破窗”Q置之不理,肯定会更快地加速系l崩溃?br minmax_bound="true" />
而言之,好的代码会促生好的代码,p糕的代码也会促生糟p的代码。别低估了惯性的力量。没人想L理糟p的代码Q同h人想把完的代码弄得一团糟。写好你的代码,它才更可能经得住旉的考验?br minmax_bound="true" />
译注Q《注重实效的E序员》,作者Andrew Hunt / David Thomas。该书直ȝE陈圎ͼI过了Y件开发中日益增长的规范和技术藩,Ҏ心过E进行了审视――即Ҏ需求,创徏用户乐于接受的、可工作和易l护 ?代码。本书包含的内容从个d职业发展Q直至保持代码灵zd易于改编重用的架构技术。从本书中将学到防止软g变质、消除复制知识的陷阱、编写灵zR动 态和易适应的代码、避免出现相同的设计、用契约、断a和异常对代码q行防护{内宏V?br minmax_bound="true" />
译注Q破H理论(Broken Window theoryQ:是关于环境对Z心理造成暗示性或诱导性媄响的一U认识?#8220;破窗效应”理论是指Q如果有人打坏了一q徏{物的窗L璃,而这扇窗户又得不 到及时的l修Q别人就可能受到某些暗示性的U容L烂更多的H户。发现问题就要及时矫正和补救?br minmax_bound="true" />
5. Ʋ速则不达
l理、客户和E序员正日益变得急躁。一切都需要做的事Q都需要马上就做好。正因如此,快速修复问题变得非常急迫?br minmax_bound="true" />
没时间对一个新功能q行适当的单元测试?好吧Q你可以先完成一ơ测试运行,然后你就可以随时回来l箋试它?br minmax_bound="true" />
当访问Y属性时Q会不会到奇怪的对象引用错误Q无论怎样Q把代码攑ֈtry/catch语句块中。我们要钓到大鱼啦!
是不是似曄识呢Q这是因为我们在以前已经都做C。ƈ且在某些情况下、它是无可非议的。毕竟,我们有最后期限,q得满客户和经理。但不要q于频繁 ?作,否则你会发现你的代码不稳定,有很多热修复、逻辑重复、未试的方案和错误处理。最后,你要么是把事情草草做完,要么是把事情好好做完?br minmax_bound="true" />
6. 三思而后?/strong>
“敏捷开?#8221;q个词最q被频繁滥用Q经常被E序员用来掩C们在软g开发过E中的糟p规?设计阶段。我们是设计者,看到产品朝正当方向有实质q展Q?我们理应高兴。但意外的是QUML囑֒用例分析gq不能满x们的愿望。所以,在不知自己做什么的情况下或者不知自pn处何处时Q我们开发h员经常就E 里糊涂地写代码了?br minmax_bound="true" />
q就好比你要d饭,但你Ҏ没有惛_d里吃。因Z太饿了,所以你q不及待地找个餐馆,定个桌位。然后你上R开车后沉K在惻I扑֜方吃饭)。只 是,q样会耗费更多的时_因ؓ你要q较多的U型弯道,q在馆前停车,也许最后因{待旉q长而不吃了。确切地_你最后应该能扑ֈ地方吃饭Q但你可?吃的饭ƈ不是你想吃的Qƈ且这栯费的旉Q可能比你直接在惛_的餐馆订所q旉更长?br minmax_bound="true" />
7. 如果你惟一的工h一把锤子,你往往会把一切问题看成钉?/strong>
E序员有一U們Q当一谈到他们工具Ӟ其视野就变狭H了。一旦某U方法在我们的一个项目上“行得?#8221;Q我们就会在接下来所有的目上都用到它。学?C 西仿佛是一U煎熬,有时候甚至会心神不定。从始至l都在想“如果我用之前的方法做、这个就不会q么ȝ?#8221;。一定要摒弃q种xQ按我们所知道的去做,?佉K不是最完美的解x法?br minmax_bound="true" />
坚持自己所知很单,不过从长q的角度Ԍ选择一个适合q项工作的工兯Ҏ得多。否则,׃与你的职业生涯格g入?br minmax_bound="true" />
8. 沉默卌?/strong>
"破窗理论"?变成惯性理?有着宏观的联pR?br minmax_bound="true" />
~程C好像一个现实社区。每个作品都是一个开发者的~媄。糟p的代码发布的越多,pҎ反映现状。如果你不去努力~写优秀、整z和E_的代码,那你每天都将和糟p的代码怼了?br minmax_bound="true" />
同样圎ͼ如果你看到别人写Zp糕的代码,你就要跟q个人提出来。注意,q时候机智就应该用上Z。一般情况下Q程序员都愿意承认他们在软g开发中q是有不懂的地方Qƈ且会感谢你的好意。互相帮助对大家都有利,而对问题视而不见,只会佉K题一直存在?br minmax_bound="true" />
9. 双鸟在林Q不如一鸟在?
如果可以讨论pȝ架构和重构,那么差找个旉把事情做完。ؓ了正常q作的东西更加简z而做改动Q权衡改动的利弊很重要。当然了Q简z是一个理想目 标, 但M有可以通过重构改进的代码。在~程世界中,Z代码不过Ӟ会频J简单改动代码。但有时候你又必M证代码对客户有h倹{那么,你面临一个简单窘 境:你不能一石二鸟。你在重构旧代码上所发时间越多,你编写新代码的时间就少。在及时改进代码和维护程序之_也需要找到^衡点?br minmax_bound="true" />
10. 能力大Q责任越?/strong>
译注QSlashdot是一个资讯科技|站?br minmax_bound="true" />
本文出处Q伯乐在U?- 职场博客
本文链接Q?a minmax_bound="true">http://www.jobbole.com/entry.php/297
]]>
]]>
附:一些关于C2审核的相关链接资?备查)Q?br />
http://technet.microsoft.com/zh-cn/library/ms187634(SQL.90).aspx
http://www.cnblogs.com/NationWoo/archive/2010/03/31/1701532.html
http://technet.microsoft.com/zh-cn/library/ms189631(SQL.90).aspx
]]>
]]>
2.sysctl命o用法举例:
参数:-w 此选项用于改变一个sysctl讄
?sysctl -w net.ipv4.ip_forward=1
参数:-p 此选项用于载入sysctl配置文gQ若-p后未指定路径Q则载入 /etc/sysctl.conf
? sysctl -p /etc/sysctl.conf
3.可以通过修改/etc/sysctl.conf文gQ将参数讄q行保存Q以使得在机器重启后原有讄仍然有效。例:
vi /etc/sysctl.conf
修改: net.ipv4.ip_forward=0的gؓ1
作用:打开数据包的转发功能
若需要修改马上生效,?
sysctl -p /etc/sysctl.conf //重新载入/etc/sysctl.conf文g
4.附一些有用的链接:
http://en.wikipedia.org/wiki/Sysctl
http://os.cnfan.net/freebsd/2078.html
http://tech.ddvip.com/2008-01/120091029240855.html
]]>
二、前提准备:
1.q行|关的相关配|,Z方便赯Q用root用户d到系l中Q?br />
2.首先对网x务器的两块网卡进行网l设|,其中内网|卡讄的时候网关的地址I白Q设|好之后查一下网x务器是否能够上外|,以及与内|是否已l联通。均联通之后将内网|卡和外|网卡的讑֤号分别记录下来?在本例中Q内|网卡设备号为eth1、外|网卡设备号为eth0)
3.要实现内|主机可以通过|关服务器上外网的功能,需要将|关操作pȝ中的数据包{发功能开启,可以通过sysctl -A命o查看当前内核参数讄Q找到其中net.ipv4.ip_forwardҎ看其对应的参数?0表示未开启,1表示开?
4.如果在上一中发现的参数gؓ0Q则需要将内核的数据包转发功能开启,具体实现方式为:
输入vi /etc/sysctl.conf命o打开配置文gQ找到其中net.ipv4.ip_forward所在的行,?="后面的数值由0更改?Q之后将文g保存后退出vi~辑器?br />
5.配|文件修改完成后Q可以用sysctl -p /etc/sysctl.conf命o或将操作pȝ重新启动Q以使参数生效。此时准备工作已l完成,接下来对防火墙的规则q行配置卛_?br />
三、ipables规则讄Q?br />
1.此例中用CentOS自带的功能强大的iptables防火墙来实现上述的要求,此时需要对iptables的规则进行设|,q行vi /etc/sysconfig/iptables命oQ打开规则配置文gQ按照下面给出的配置文g模板q行讄:
2 # Manual customization of this file is not recommended.
3 *filter
4 :FORWARD ACCEPT [0:0]
5 :INPUT ACCEPT [0:0]
6 :RH-Firewall-1-INPUT - [0:0]
7 :OUTPUT ACCEPT [0:0]
8 -A INPUT -i eth1 -j ACCEPT //此处的eth1按实际更改ؓ内网讑֤?/span>
9 -A INPUT -j RH-Firewall-1-INPUT
10 -A FORWARD -j RH-Firewall-1-INPUT
11 -A RH-Firewall-1-INPUT -i lo -j ACCEPT
12 -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT //此处的eth1按实际更改ؓ内网讑֤?/span>
13 -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
14 -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
15 -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
16 -A RH-Firewall-1-INPUT -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
17 -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
18 -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
19 -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
20 -A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT
21 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
22 COMMIT
23 *nat
24 :PREROUTING ACCEPT [0:0]
25 :POSTROUTING ACCEPT [0:0]
26 :OUTPUT ACCEPT [0:0]
27 -A POSTROUTING -s 192.168.1.1 -o eth0 -j MASQUERADE //此处{发规则设|,增加讉K外网复制此行卛_
28 //上述中ip地址要按实际讄为允许访问外|机器的ip地址,eth0也要按实际更改ؓ外网讑֤?/span>
29 COMMIT
30 # Completed
]]>
发布版本
开发代?span>
发布旉
中文
4.10
Warty Warthog
2004q?0?0?/td>
多疣的疣?span>
5.04
Hoary Hedgehog
2005q???/td>
白发的刺?span>
5.10
Breezy Badger
2005q?0?3?/td>
zL的獾
6.06
Dapper Drake
2006q???/td>
伶俐的公?span>
6.10
Edgy Eft
2006q?0??/td>
利的小蜥蜴
7.04
Feisty Fawn
2007q??9?/td>
烦躁不安的小?span>
7.10
Gutsy Gibbon
2007q?0?8?/td>
胆大的长臂猿
8.04
Hardy Heron
2008q??1?/td>
坚强的苍?span>
8.10
Intrepid Ibex
2008q?0?7?/td>
勇敢的野q
9.04
Jaunty Jackalope
2009q??3?/td>
Q?
]]>
之后可以用mount命o来挂载Windows下面的NTFS分区?
1.先用fdisk -l命o来查看系l中盘的信息,形式如下:
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2551 20490876 7 HPFS/NTFS
/dev/sda2 2552 19457 135797445 f W95 Ext'd (LBA)
/dev/sda5 2552 7650 40957686 7 HPFS/NTFS
/dev/sda6 7651 9014 10956298+ 7 HPFS/NTFS
/dev/sda7 9015 10926 15358108+ 83 Linux
/dev/sda8 10927 15528 36965533+ 83 Linux
/dev/sda9 15529 15659 1052226 82 Linux swap / Solaris
/dev/sda10 15660 19457 30507403+ 83 Linux
2.使用mkdir /mnt/x命o在mnt文g夹中创徏新的文g夹,用来对应Windows下的分区?br />
3.再用mount -t ntfs /dev/xxx /mnt/x 命oWindows下的各分区挂载在新徏的文件夹里,例如:
mount -t ntfs /dev/sda1 /mnt/WinC
如果需要设|在pȝ启动Ӟ将分区自动q行挂在的话Q则需要做以下步骤:
1.使用vi /etc/fstab 命oQ打开fstab文gq行~辑?br />
2.在文件中以后的数据之后添加一行新的数据,形如:
/dev/sda1 /mnt/WinC ntfs defaults 0 0
3.保存之后Q以后再ơ启动Linux时系l会自动Windows下的C盘挂载到/mnt/WinC目录下?br />
]]>
]]>