没有合适的资源?快使用搜索试试~ 我知道了~
首页快速提升:程序员晋升指南与项目自动化实战
快速提升:程序员晋升指南与项目自动化实战
需积分: 9 1 下载量 137 浏览量
更新于2024-07-23
收藏 2.71MB PDF 举报
"《程序员修炼三部曲:项目自动化之道——Pragmatic Pro》是一本专为希望从初级程序员晋升为高级软件工程师的读者设计的实用指南。该书以其作者Mike Clark的独特风格——清晰、简洁且富有乐趣,引导读者探索项目自动化的新境界。书中提到的CruiseControl RSS发布器已经成为了许多项目实践中的关键工具,而书中分享的更多宝贵技巧正逐渐融入读者的工作日常。 书中的亮点包括Lava Lamps和Groovy等前沿技术的介绍,被赞誉为“最酷”的软件书籍之一。评论者Erik Hatcher,作为《Java Development with Ant and Lucene in Action》的合著者,高度评价了《Pragmatic Project Automation》,认为自动化是优秀软件工程的重要组成部分,好的系统天生就适合自动化,并强调自动化能帮助我们构建出更优秀的系统。 Glenn Vanderburg赞赏这本书既有趣又实用,它汇集了一系列巧妙的技巧,让读者能够运用日常工具实现惊人的效果。而James Duncan Davidson,Ant的创造者,更是明确指出,节省时间就是节省金钱,这本书提供了有效的时间管理策略,教你如何在提升效率的同时,间接实现经济上的收益。 总而言之,《程序员修炼三部曲:项目自动化之道》不仅提供了一套系统的学习路径,帮助程序员提升技能,而且强调了自动化在现代软件开发中的核心地位,以及如何通过自动化提高工作效率和质量。无论你是刚入行的开发者还是寻求进一步提升的专业人士,这本书都是不可多得的参考资料和实践指导。"
资源详情
资源推荐
LOOK MA, NO HANDS! 2
But it’s 2004, and a cool product name and a web site just
don’t cut it. These days you actually have to demonstrate
working software to loosen the VC purse strings. Speaking of
which, Fred is in charge of preparing a demo for the venture
capitalists tomorrow at noon. There’s just one problem: By
that time tomorrow Fred will be a few state lines away from
the office. In fact, his RV is out in th e parking lot right now,
gassed up for a trip to the yearly family reunion in K ansas.
Just as soon as he adds this last feature, Fred and his family
will hit the road.
It Works on My Machine
Fred can already taste the barbecue sauce as he finishes up
the last bit of code. He presses t he Compile button on his
favorite IDE. No errors. Then he runs all his local unit tests,
and they pass. So far, so good. Now for the grand finale. Fred
checks out t he latest version of the rest of the project from the
version control system to set up for an integr ation test. Then
he touches off a build by running th e project’s build script.
WooHoo! The build succeeded. Fred is reminded once again
that he’s the world’s greatest programmer. So he commits
his changes, grabs his lunch pail, and races for the elevator.
In the morning, all his team needs to do to deploy the demo
is run the deployment script. They may even have time for
a game of foosball before the ventur e capitalists show up at
noon. Life is good as Fred, the missus, and all the rugrats
crawl into the Winnebago and drive out of town.
Somewhere Out on I-70...
Fred has the pedal to the metal as the RV lumbers down I-70
in the dead of night. Just as t he kids have dozed off, Fred
is startled back into reality by a beep of his cell phone. It ’s
a text message sent from the scheduled build process on the
build machine back at the office, hundreds of miles in Fred’s
rearview mirror. When it woke up and tried t o run a build, it
failed. Fred grimaces as he reads the err or message. In his
haste he forgot to check in a new source file.
Prepared exclusively for Randi Macbride
LOOK MA, NO HANDS! 3
Fred leaves a voice mail for his faithful teammate Barney, let-
ting him know that he’ll n eed to check i n the file before the
demo. And then Fred g oes back to counting mile markers.
The Next Morning
Barney strolls into the office a tad late the next morning. The
whole team had worked hard preparing for t he demo all week,
so last night they celebrated by downing some brews at the
bowling lanes. Checking voice mail is the last thing on what’s
left of Bar ney’s mind. He’ll return phone calls after the demo.
But he can’t help but notice the boiling red bubbles in one of
the Lava Lamps that the team uses to indicate the build sta-
tus.
1
Oh no! The scheduled build has failed. When they left
work last night, the green lamp was bubbling. “What could
have happened?” Barney wonders as he checks the build sta-
tus web page. It tells him that since the last successful build,
one person has checked in code...Fred! The error message
says he forgot to check in a file.
Back on Solid Ground
Perhaps it’s time for Barney to check voice mail. He listens as
Fred sheepishly explains that a local file on his machine needs
to be checked in for the build to work. Having checked in the
missing file, Barney wants some confidence that everyth ing
is in place for the demo. So he forces an independent build
on the build machine. He also cranks up the frequency of
scheduled builds so that Fred can’t get so far away next ti me
before finding out the build failed.
Everything compiles, and the tests pass on the build machine.
Barney then runs a script that automatically creates a release
branch containing the current versions of all files in version
control, builds and tests the release branch, creates a distri-
bution file, and deploys it into t he demo web server.
After running t he deployment script, Barney clicks through a
few pages of the demo to make sure it looks right. Then he
takes an early lunch before folks show up for the demo.
1
Don’t worry, y ou’l l learn how to light up y our own Lava Lamps in Sec-
tion
6.2, Getting Feed back from Visual Devices, on page 128.
Prepared exclusively for Randi Macbride
TYPES OF AUTOMATION 4
Then, Right Before the Demo...
Barney’s pager goes off just as he’s finishing hi s brontosaurus
burger. The demo site has crashed. How does he know this?
Well, Barney has been burned by demos crashing before. And
when he has an itch , he finds some way to scratch it.
Before going to lunch, Barney hooked up a simple monitor to
the demo web page. It automatically inspects the site every
couple of minutes looking for an error message. If it finds
one, it notifies Barney by sending him a text page. Fred gets
the same text message on his cell phone, but he’s up to his
elbows in barbecued spareribs.
This time it looks like somebody shut down the database on
the demo machine. Thankfully, there’s time to straighten that
out before the big demo.
A Happy Ending
Today we find Fred, Wilma, Barney, and t he whole crew down
at t he bowling lanes high-fiving over the huge success of last
week’s demo. They all laugh at themselves for being in the
stone age of automation for so long. “1998 called,” Fred jokes.
“It wants all its manual, repetiti ve, boring work back.”
Sure, Fred learned his lesson about missing files—but more
important, he and hi s team learned to appreciate all the auto-
mation that’s w atching their backs. It was automation that
reduced the risk of a failed demo by notifying them early when
problems popped up, wherever they were. It was automation
(and version control) that saved them time by giving them a
consistent and repeatable way to build and deploy their code.
They’ll prepare for a lot more demos and (if things go well)
production releases after this. Automation will pay for itself
many times over. That’s what this book is all about.
1.2 Types of Automation
In a short amount of time, Fred and his team experienced t he
thr ee primary types of automation shown in Figure 1.1 on the
next page. Let’s look at each of those in detail.
Prepared exclusively for Randi Macbride
TYPES OF AUTOMATION 5
C o m m a n d e d A u t o m a t i o n
S c h e d u l e d
A u t o m a t i o n T r
i g g e
r
e d
A u t o m a t i o n
Figure 1.1:
Types of Automation
• Commanded automation. This happens anytime you run
a command and the computer per forms a set of tasks
in a consistent and repeatable manner. For example,
Fred ran a build script, and it attempted to gener ate a
build just as it would on any machine. The computer
remembered exactly how to do all the build steps for
Fred, and everyone else on th e project. Likewise, Barney
ran a script that carried out the lock-step instructions
for deploying the application consistently.
• Scheduled automation. Once you can get automation by
running a command, then you can put that command on
a schedule so th at nobody has to run it manually. Fred
forgot to check in a file, but even though he was miles
away the scheduled build ran on time and notified him
of the problem.
• Triggered automation. Commands can also be automat-
ically run when some important event happens. For
example, every time a file is checked in to version con-
trol a formatting script could be automatically run. Trig-
gered automation i s frequently associated with a sched-
uled task. For example, Barney wanted to reduce the
risk of the demo site not being ready, but he didn’t have
time to continuously check the site. So h e ran a monitor
that periodically watched the site for an error event that
then triggered his pager.
Prepared exclusively for Randi Macbride
QUESTIONS ABOUT AUTOMATION 6
Because the team made ef fective use of all three types of auto-
mation while preparing for the demo, they got feedback at
each of the stages: building, deploying, and monitoring their
software. Imagine how stressful it mig ht have been for the
team otherwise.
1.3 Questions About Automat ion
Before diving into automation, it ’s only natural t o have ques-
tions. Let’s look at some common ones.
What Do I Need to Get Sta rted?
The automation techni ques used on Fred’s project were fairly
simple and inexpensive, but they didn’t come for free. The
team needed a few basic th i ngs in place before they could
capitalize on automation.
• Version control. A central repository for all the files in
their project gave the team a place to synchronize all
their work. This in turn gave the build machine a sin-
gle source from which the project could be built. Using
version control also allowed Barney to create a snapshot
of all the files used to build the demo so that the same
demo can be r eproduced at any time in the future. Ver-
sion control is covered in detail in [
TH03
].
• Automated tests. Running automated tests—tests that
check their own results—gave the team confidence in
their code base. Fred r an automated tests on his local
machine before checking in code to version control. The
tests also ran as part of the scheduled build on the build
machine to check that all the project code worked in
harmony. Barn ey then ran the same automated tests
to verify th at t he code in t he release branch was ready
for distribution. At each step in the project life cycle,
from writing code to deploying a new release, the auto-
mated tests were run to gain confidence before moving
on. Indeed, automated tests are the underpinning of
effective project automation. Writing good automated
tests is covered in detail in [
HT03
].
Prepared exclusively for Randi Macbride
剩余171页未读,继续阅读
dldavid110best
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功