Easyhost Easyhost Easyhost Easyhost Easyhost

Uncategorized

Modifiability: Or Is There Design In Agility

Conference: Many people assume that agile methods mean an absence of design. Design still happens in agile projects, but it shifts from an up-front phase to a continual evolution. Design decisions should be left to the last responsible moment, but some design decisions do need to be made at the start of a project. Martin Fowler explores this topic through a panel discussion of design in an agile context.

 

Very good conference. 5 Software Architects talk about how to design software in a agile development.

Quote: „Classes need to keep secrets, you need to start private, work on that and then get protected when you absolutely need to. Work protected until you absolutely need to go public.”

Quote: „Test driven applications tend to organize themselves in a modular fashion. You cannot have unit testing without the ability to mock and stub objects. This ability and this need generates a better design. I use dependency injection due to this. ”

http://www.infoq.com/presentations/modifiability-fowler

Citește mai mult

Language Oriented Programming : the new Paradigm?

Here’s an interesting article about a new paradigm in programming. It comes under different names : Intentional programming, MDA, generative programming, Language Oriented Programming.

This last name is suggested by Sergey Dmitriev (cofounder and CEO of JetBrains Inc., makers of the IntelliJ IDEA Java IDE). His opinion is that developers are currently restricted by their dependency on programming languages and developer tools. A solution to this can be defining DSLs (Domain Specific Languages), but they also have the disadvantage of not being general enough.

 

So he suggests that the solution could be a Language Workbench that allows creating as many DSLs as needed. The use of a DSL makes the mapping of the conceptual model solution to the program source code a lot more easier. In addition to that, it allows domain experts (non-programmers) to create programs using a very descriptive language created for that specific domain.

Read more here.

Citește mai mult

DSLs and Language Workbenches

I have recently came across a very interesting view on our programming activity. It describes the use of Domain Specific Languages. These languages are small programming languages that are particularized to a specific problem at hand. Say instead of using big xml files for configuration we could define a small programming language to do the job.

 

This introduces a lot of advantages if you know when to use it. There are tools that can help us build programming languages very quickly. These tools are called language workbenches. It’s a different perspective than yacc and bison due to the fact that you describe your language using the abstract concepts and not syntax. The syntax is then generated to suit the abstract concepts. Thus you can quickly create very powerful and customized programming languages for each particular problem.

This can take application building and the customer closer together and reduce the number of programmers needed to build and maintain an application.

read more :http://martinfowler.com/articles/languageWorkbench.html

Citește mai mult

A branch is like a puppy

Eric Sink (founded the AbiWord project, software developer at SourceGear):

Best Practice: Don’t be afraid of branches. If you’re doing parallel development, let your source control tool help. That’s what it was designed to do.”

„Best Practice: Keep a „basically unstable” trunk. Do your active development in the trunk, the stability of which increases as you approach release. After you ship, create a maintenance branch and always keep it very stable.”

Best Practice: Don’t create a branch unless you are willing to take care of it. A branch is like a puppy.”

Read the full article here:

http://www.ericsink.com/scm/scm_branches.html