In the past, a traditional, non-Web application was responsible for handling everything
from user input to application logic to data storage.These three entities were
interwoven with each other, making it difficult or impossible to change one of them
without affecting the others. If you wanted to provide such an application to multiple
users, you’d have a problem:What if the […]
Archive for the ‘Softwareontwikkeling engineering’ Category
Traditional Client/Server
Three-Tier Applications
With larger development teams, effective means for organizing a project become vital.
By now, you’ve seen methods of handling the separation between layout and code,
organizing directory structures, and using a version-control system for managing the
source code. As soon as you talk about distributed development, phase separation, and
business processes, marketing people will jump on you and yell […]
Concurrent Versions System
When multiple developers work on one project, the potential for version conflicts
arises; this is even more likely when the developers are working not in the same cubicle
but distributed across national boundaries.What happens if two developers edit one file
at the same time? The changes of one developer will inevitably be overwritten.What
happens if a script authored by […]
Typical development life
The new project is started by creating the directory structure and setting up
CVS (more on CVS shortly).
2. Developers check out a copy of the development branch.
3. Developers commit their changes to the development branch.
4. After a significant […]
Team Collaboration
The Internet introduced the capacity to communicate and work together over long
distances, regardless of the geographical location of individual team members.This
opens great new possibilities for distributed teams. Large companies are not limited by
geographic boundaries today. Indeed, many corporations develop software applications
by blending experts’ skills from many different geographic regions.
Project management is a […]
Project Layout
The time arrives when even 12-hour days, weekend toil, and gallons of coffee and Jolt
cola won’t be enough for a single developer to complete a project on time. For the
average programmer, this is a significant break in life: No more lonely hacking on his
own code, using that cool style only he can read, being his […]
Usability: Just Do It
Nielsen says, “Two of the fundamental slogans of discount usability engineering are
that ‘any data is data’ and ‘anything is better than nothing’ when it comes to usability.”
We encourage you to try discount usability engineering—and to apply it in your
development as often and regularly as possible. It doesn’t cost much and will signifi-
cantly enhance the user […]
Discount Usability Engineering
In real life, people rarely use the recommended usability-engineering methods on soft-
ware development projects. One important reason for this failure is the cost of using
traditional usability-engineering techniques. In the highly respected magazine
Communications of the ACM, authors Mantei and Teorey5 estimated in 1988 that the
“costs required to add human factors elements to the development of software” […]
Usability in Web Applications
Web applications have different characteristics than desktop applications.
With HTML, you can’t control layout in a 100% reliable way, and you have to
accept compromises in the display.Your site may be viewed on a broad variety of
display devices, ranging from Palm Pilots to Web TV to a standard browser on an
800 × 600 screen.
[…]
Why Usability Matters
You might wonder why a section about usability is included in a blog about software
development.We feel it’s a necessity for any serious developer to know about basic
principles for information architecture, user interface engineering, and usability.
As Web applications get larger and more complex,Web developers are challenged
more than ever to create effective and functional […]
Web Application Concepts
T O UNDERSTAND THE IMPLICATIONS OF WEB APPLICATION concepts, you need to dif-
ferentiate between applications and single scripts. A script is a utility, and as such doesn’t
have any context. It doesn’t know about other scripts in your system. An application,
however, is designed to perform more advanced tasks. An application needs to main-
tain state […]
Project Overview
When designing an application, you start with the idea of what the application is
supposed to do. In the case of phpChat, the application is supposed to provide a
browser-based chat service.
The chat should have the following features:
Real-time chat. No deferred relaying of messages and no refreshes.
[…]
An API Design Example
In the midst of all this theory, let’s design an application program interface (API) from
the ground up to familiarize you with the conventions and concepts discussed earlier.
Please note that this is a practical approach, not a theoretical approach.We’ve chosen
to do it in a practical manner to let you memorize each step; in future projects, you’ll
have […]
Writing Documentation
In addition to commenting and structuring, it’s important to pay attention to docu-
menting.The documentation for a project is probably the first part of the project that
your customers will see, and the first impression is the one that counts.
Professionally laid out documentation that contains more than the obligatory
“Follow the installation instructions in the […]
Using Files to Group Functions
We’ve shown that it pays to use multiple files for source code, but we encourage you
to also use files for most other resources, such as configuration data; custom headers,
footers, or other templates; and anything else that can be extracted from your project
as a separate entity.
Using multiple files for a single project offers […]
Abstracting Separate Chunks of Code
Abstracting blocks of code is a task that should be done during both planning and
implementation. Let’s say that a function will perform the following jobs:
1. Open a file.
2. Read a block of data from the file.
3. Validate the data.
4. Correct any errors in […]
Structuring Code into Logical Groups
Applications usually consist of different function groups, each handling a special task
and/or area of the application. For example, when writing a database-backed applica-
tion, a function group should be responsible solely for handling database access.This
code builds an entity of its own and can safely be detached from the rest of the
program—if you designed it well. Function […]
Keeping Clear and Consistent Interfaces
You may hate seeing the word consistency again, but for designing interfaces it’s a criti-
cal piece in the mosaic of programming.
Unfortunately, an example of how not to do it can be found in PHP itself.
When you’re driving a car, the gas pedal is on the right and […]
Adding Comments
We can’t stress it enough—even though while programming you may think it’s the
dumbest thing to do—commenting is substantial when producing high-quality code.
When solving complicated problems, seldom do two people think the same way.What
may be totally obvious to one is obscure to the other. Comments are very helpful in
these situations, and they should be added to […]
Making Your Code Easy to Read
- Indent all blocks with tabs (ideally, set the tab width to no less than 4).
- Leave spaces between keywords and key characters, especially when doing
- calculations.
Group logical chunks of code within […]
