473,763 Members | 1,908 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Ten Essential Development Practices

The following url points to an article written by Damian Conway
entitled "Ten Essential Development Practices":
http://www.perl.com/pub/a/2005/07/14/bestpractices.html

Althought the article has Perl as a focus, I thought that some of the
general points made might be of interest to the Python community. It
would certainly be interesting to put together an analogous version of
this article that centers on Python.

Best Regards,
g

Jul 28 '05
217 9213
Dan Sommers wrote:
The Zen applies to all aspects of software
(and other things, too, but they're off topic here), from human readable
reports and requirements and documentation, to GUI's, to test cases, to
code, to database schemta, as well as the development methodology and
practices themselves.

Sometimes you have to look at the Zen sideways, so that "implementation "
appears to be replaced by the particular aspect or aspects (or the
software, or just software, as a whole, for the true Masters out there)
you happen to be working on at the time, but such is the nature of Zen.


It also applies to Motorcycle Maintenance, of course... (as in "Zen and
the Art of").

-Peter
Jul 29 '05 #11
Dan Sommers wrote:
On Thu, 28 Jul 2005 15:35:54 -0700,
Robert Kern <rk***@ucsd.edu > wrote:
That said, I made a boo-boo. The Zen of Python is really a set of
design principles (and some of them, like this one, are more
specificall y *language* design principles), not Essential Development
Practices. That'll teach me to not RTFA.
May I respectfully disagree?


No, I'm afraid that you may only disrespectfully disagree with me. I
will not tolerate politeness. Why? Uh, my .sig quote justifies rudeness!
Yes, that's it![1]
The Zen applies to all aspects of software
(and other things, too, but they're off topic here), from human readable
reports and requirements and documentation, to GUI's, to test cases, to
code, to database schemta, as well as the development methodology and
practices themselves.
Sure, and I can find programming advice in the Old Testament, too, if I
try hard enough[2]. But that doesn't change the fact that the "Essential
Development Practices" (e.g. "Use a source control system") are in a
different category than the Zen of Python (e.g. "Namespaces are one
honking great idea -- let's do more of those!"). Hence Michael Hoffman's
very good question about how he might embody that particular bit of Zen:
it's just not applicable to the things he's doing because it's a design
principle for Python the language, not about development (or even
design!) in general.

Of course other pieces of the Zen are more generally applicable
("Readabilit y counts.") as a "developmen t practice," but that's
something of an accident. Usually, they're about design, sometimes
specifically about the design of Python the language.
Sometimes you have to look at the Zen sideways, so that "implementation "
appears to be replaced by the particular aspect or aspects (or the
software, or just software, as a whole, for the true Masters out there)
you happen to be working on at the time, but such is the nature of Zen.


That's a bit too much navel-gazing for me. With enough effort, you make
anything a symbol of anything else. But that doesn't get any code written.

[1]
http://groups-beta.google.com/group/...f205c9b6709163

[2] Proverbs 28:14 JPS "Happy is the man that feareth alway; but he that
hardeneth his heart shall fall into evil." Obviously an exhortation to
not ignore raised exceptions with "except: pass".

--
Robert Kern
rk***@ucsd.edu

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter

Jul 29 '05 #12
Dan Sommers wrote:
On Thu, 28 Jul 2005 15:35:54 -0700,
Robert Kern <rk***@ucsd.edu > wrote:

That said, I made a boo-boo. The Zen of Python is really a set of
design principles (and some of them, like this one, are more
specificall y *language* design principles), not Essential Development
Practices. That'll teach me to not RTFA.

May I respectfully disagree? The Zen applies to all aspects of software
(and other things, too, but they're off topic here), from human readable
reports and requirements and documentation, to GUI's, to test cases, to
code, to database schemta, as well as the development methodology and
practices themselves.

Sometimes you have to look at the Zen sideways, so that "implementation "
appears to be replaced by the particular aspect or aspects (or the
software, or just software, as a whole, for the true Masters out there)
you happen to be working on at the time, but such is the nature of Zen.

Regards,
Dan

If I canpoint out the obvious, the output from "import this" *is* headed
"The Zen of Python", so clearly it isn;t intended to be universal in its
applicability.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

Jul 29 '05 #13
Steve Holden <st***@holdenwe b.com> writes:
If I canpoint out the obvious, the output from "import this" *is*
headed "The Zen of Python", so clearly it isn;t intended to be
universal in its applicability.


It's also mistitled there, given that it was originally posted as '19
Pythonic Theses' and nailed to, erm, something.

Cheers,
mwh

--
Remember - if all you have is an axe, every problem looks
like hours of fun. -- Frossie
-- http://home.xnet.com/~raven/Sysadmin/ASR.Quotes.html
Jul 29 '05 #14
On Fri, 29 Jul 2005 10:08:15 +0100,
Steve Holden <st***@holdenwe b.com> wrote:
If I canpoint out the obvious, the output from "import this" *is*
headed "The Zen of Python", so clearly it isn;t intended to be
universal in its applicability.


Ok, not universal. But as usual, Zen is not easily nailed to a tree.

Was Tim writing about developing Python itself, or about developing
other programs with Python?

Regards,
Dan

--
Dan Sommers
<http://www.tombstoneze ro.net/dan/>
Jul 29 '05 #15
gy**********@gm ail.com wrote:
The following url points to an article written by Damian Conway
entitled "Ten Essential Development Practices":
http://www.perl.com/pub/a/2005/07/14/bestpractices.html

Althought the article has Perl as a focus, I thought that some of the
general points made might be of interest to the Python community. It
would certainly be interesting to put together an analogous version of
this article that centers on Python.

Hmm, Perl is called a write once language, but it has thousands of
libraries.Any comment appreciated.

That said,those points are mixing different responsabilitie s in writing
code.I keep on mixing for fun:

-Writing libraries is not writing scripts.
-Writing readable,well structured,non redundant code is somewhat
perpendicular to tests.
-Writing tests is a must for more people to work on the same code.
-Deciding the interface and writing docs before coding can be bad for
experimental coding.
-Logic optimization can influence interfaces.
-Time optimization is a leverage to get paid in open source
software.Never think about that for free.

Paolino

_______________ _______________ _____
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB
http://mail.yahoo.it
Jul 29 '05 #16
[Steve Holden]
If I canpoint out the obvious, the output from "import this" *is*
headed "The Zen of Python", so clearly it isn;t intended to be
universal in its applicability.

[Michael Hudson] It's also mistitled there, given that it was originally posted as '19
Pythonic Theses' and nailed to, erm, something.


'Twas actually posted as "20 Pythonic Theses", although most times I
count them I find19. Nevertheless, that there are in fact 20 was
channeled directly from Guido's perfectly Pythonic mind, so 20 there
must be. I suspect he withheld one -- although, as some argue, it's
possible he thinks in base 9.5, that just doesn't seem Pythonic to me.
Jul 29 '05 #17
[Dan Sommers]
Ok, not universal. But as usual, Zen is not easily nailed to a tree.

Was Tim writing about developing Python itself, or about developing
other programs with Python?


Tim was channeling Guido, and that's as far as our certain knowledge
can go. It _seems_ reasonable to believe that since Guido's mind is,
by definition, perfectly Pythonic, any truth channeled from it
necessarily applies to all things Pythonic.

nevertheless-we-interpret-the-gods-at-our-peril-ly y'rs - tim
Jul 29 '05 #18
In article <m2************ @unique.fully.q ualified.domain .name.yeah.righ t>,
Dan Sommers <me@privacy.net > wrote:

Was Tim writing about developing Python itself, or about developing
other programs with Python?


Yes.

(C'mon, didja really expect any other answer?)
--
Aahz (aa**@pythoncra ft.com) <*> http://www.pythoncraft.com/

The way to build large Python applications is to componentize and
loosely-couple the hell out of everything.
Jul 29 '05 #19
<snip>
although, as some argue, it's
possible [GvR] thinks in base 9.5, that just doesn't seem Pythonic to me.


+1 QOTW

Peace
Bill Mill
bi*******@gmail .com
Jul 29 '05 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
2061
by: Shawn Berg | last post by:
I have just finished reading the "Team Development with Visual Studio .NET and Visual SourceSafe" patterns & practices white paper. I just wanted to get a good feel from others if what they suggest here is really the best implementation for team development. My company only has a handful of developers (2 currently, as many as 5 possibly in the future) that need to work on the same ASP.NET projects. All of our existing apps are in classic...
8
1374
by: whodunit | last post by:
What is the difference in development time, if you can use a rule of thumb, between ASP and ASP.NET? I have read many places that ASP.NET makes you more productive? Well, by how much? I hear all the time that ASP.NET improves development time by 20%. I realize there are many factors to consider, the type of project, etc. But if anyone can generalize without losing the value to answer my question, please do.
2
1830
by: Amelyan | last post by:
Could anyone recommend a book (or a web site) that defines best practices in ASP.NET application development? E.g. 1) Precede your control id's with type of control btnSubmit, txtName, etc. 2) Group relevant .aspx files into subfolders within your project etc.
4
2627
by: Collin Peters | last post by:
I have searched the Internet... but haven't found much relating to this. I am wondering on what the best practices are for migrating a developmemnt database to a release database. Here is the simplest example of my situation (real world would be more complex). Say you have two versions of your application. A release version and a development version. After a month of developing you are ready to release a new version. There have...
1
1133
by: abc | last post by:
Our team have three developers. Each one have a PC as development. Because these PC is slow if it also run VS.NET, IIS and SQL Server Express. For improve debug and development performance, I will move SQL Server to Windows 2003 Server. Can I config three developers to run one web project on IIS under Windows 2003 which is new server machine? If can, how should I do?
10
1690
by: RBD | last post by:
Hi all, I am a a self taught C# programmer. I have been developing custom apps for a few years now, but they have mostly been very small apps for individuals or departments. Now I am getting into fairly large custom apps for small/medium sized companies. My problem is I have been ok with the small apps, but I dont know how to structure large apps. I need resources that will teach me how to structure medium sized applications. I'm...
1
1658
by: Pablo | last post by:
Hello all, Hope today finds you well. I'm looking to take my knowledge of best practices within the development lifecycle to the next level. Basically I want to follow industry recognised, Microsoft approved practices for every aspect of the lifecycle - so planning and architecture, team development, testing procedures, change control and bug-tracking, version control - etc etc. What software to use, which
8
2763
by: situ | last post by:
Hello all, i have Database1 and database2, is it possible to make database connection to database2 by running stored procedure on database1. Thanks and Regards Situ
29
2339
by: Nickolai Leschov | last post by:
Hello, I have done some programming, mostly on embedded systems but now I would feel like I have to learn good development practices (i.e programmer's good manners). Let's say I want to build an application using some established open source library or application. Do I just download the source and hack away? Or I'd better do it in some controlled manner, i.e set up some source control system so that I can always compute the diffs from...
0
9389
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
1
9943
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8825
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7370
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5271
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5410
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3918
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3529
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2797
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.