Discussing the nuts and bolts of software development

Wednesday, October 29, 2008

 

Breadth-First Coding

"Look Ma! I'm inventing my own buzzwords!"

The problem

A little while ago, some of us at Macadamian held discussions on behaviors we would like to encourage among younger developers. One thing we agreed was that "stubbing" (coming up with methods containing as little code as possible, in order to stabilize the API interactions faster) was becoming a "lost art". And so we resolved to start encouraging "top-down development", as we were used to call it.

So far, we've met with little success. Despite our explicit encouragements, it seems hard for people to adopt a "top-down" approach.

And lately, I've been wondering: what if we're not communicating right? After all, "top-down" is a pretty generic term. After all, it's even used to describe an entire programming methodology which predates Object-Oriented Design. So perhaps some of the people in our teams are thinking: "Of course I'm going from top to bottom, what are they complaining about!?"

That's when I thought of something...

Mandatory flashback to the author's younger days

Back at school, I followed this neat AI course which taught me some general problem-solving heuristics. Overall, it showed two ways to attack a problem by brute force: breadth-first and depth-first.

Let's say we're looking for a file within a directory structure. A depth-first approach will recursively explore each solution by first going to the lowest node possible. Only then will it work its way back up, before going down again.



A breadth-first approach, on the other hand, would attempt to fully explore one level of nodes before jumping to the next one.



For additional details, you check out breadth-first search and depth-first search on Wikipedia (where I borrowed these graphs from).

And so...

I'm beginning to think that younger developers show a natural tendency to code depth-first. They pick a single feature/functionality/API call, then implement it down to the lowest level, at which point they consider to have a "valid iteration". Then they go back up a few levels, and start again. Doing things that way can make you feel good because you've added a lot of code, but it makes things harder to test, and might complicate future integration.

We'd like people to try out breadth-first coding, which would mean getting a wider range of partly-implemented methods in the early stages.



First, you'd define the APIs of the first layer, providing a "bare-bone" implementation of each method. Then you'd define the second layer, once again with a minimal implementation, at which point you'd be able to properly implement the first layer. Repeat for each layer of implementation.

So, as my first step, I'll start using the term "breadth-first" when talking about this approach. I'm hoping that by using this term instead of "top-down", I'll get a few "Huh? WTF?" responses, which may be just what we need in order to break some old habits...

Comments:
Do you want to know more about using APA format? On https://nerdymates.com/blog/apa-style-format you can read more about it
 
Engineers who wish to migrate to Australia must submit a Competency Demonstration Report and the Engineers Australia must approve it. Thus, engineering students look forward to getting Cdr writing services which assists them to get a flawless CDR. This reduces the chances of rejection by the EA.
Most students and experienced civil engineers are today looking forward to migrating to Australia as the job scope is better and bigger with a high pay scale. Therefore, getting CDR help is the only scope to gain entry into the country.
The CDR for Engineers Australia must be impressive and abide by the ANZSCO code and guidelines. It should also showcase the skills of the applicants as a suitable civil engineer to work according to the Australian rules and regulations.
The service providers who assist the students with CDR have experienced CDR report writers. These writers know the requirements of a CDR and do it accordingly.

 
Assignments provide an opportunity to revise the topics by yourself. However, as the competition is increasing now days, students are being piled up by really long assignments. So, situations can arise when you are too caught up to write assignments, in such scenarios assignment help can come in handy. Assignment Help Online
 
Your blogs are amazing and I am glad to read them. Thanks for sharing the tips and samples of our assignments. They are useful in knowing the key points that can increase the value of an assignment. And a special thanks to the My Assignment Help Australia for helping the students 24/7. You can email us at cs@Myassignmenthelpau.Com or Phone Number: +61-2-8005-8227

 
Your blog presentations is great and informative. Thanks for sharing!! Assignment Writing is becoming a very stressful task for students. Our Assignment Help experts will surely help you to secure the best grades and enhance your future career life.
Approach us@ Assignment Help

 
Get the best write my research paper service from the assignment experts of Students Assignment Help at a reasonable price. Our experts provide the reliable assignment writing help services to the students. Our online writers are expert in writing assignment.
 
Yes, I’m very happy with Assignment Help services for A+ grades but I got the brilliant success in my college homework. I got the assignment writing services on time and got good tutors to study the subject perfectly. Nice assignment writing services!
 
Great blog! It provides you ideas about Nepal tour. You can know important tips how to choose Nepal Tour Packages. Thanks for sharing this nice blog.
 
This content is very informative for me. Thank you so much for sharing. Need Allassignmenthelp? Click Java Assignment Help

 
Brother Printer Support
team will help you with all your technical difficulties in using brother printer and will resolve all your doubts regarding the setup and installation process. calling the tech support team will save your time and money. so call us now on Brother Printer Offline
+1-888-902-8333 to help you with your difficulties.
 
Students who want homework service for them we are always here with the out best team. That's why our team continues giving top homework service easily. so if you don't want to get microeconomics homework help so students assignment help is working for students, so you can easily collect assignment help service and easily get our more best services from the professional experts of StudentsAssignmentHelp.com.
 
Sekabet spor bahisleri, canlı bahis için en yüksek oranlar sunan, canli casino, casino slot oyunları ile beraber poker oynayabileceğiniz bir oyun platformudur. Sekabet

Vdcasino piyasaya giriş yaptığı günden bu yana bahis dünyasının güvenilir siteleri arasında yer alan vdcasino, Çok az şikayeti bulunmaktadır. Vdcasino

 
Timebet bahis şirketi 2019 yılında faaliyete başlamıştır. Spor bahisleri, canlı bahisler, casino, canlı casino, sanal oyunlar, poker ve tombala gibi çeşitli ürünler sunar. Timebet

 
Piabet canlı bahis sitesi 2015 patenti canlı bahis bürolarından birisi olarak hem ülkemizde hem de Avrupa’nın farklı noktalarında yayın hayatını sürdürmektedir. Piabet

 

Thanks, great post. I really like your point of view. I m Marry Taylor, I working as a support executive for printer devices. I am offering support for HP Devices and If you need help then contact HP Laptop Support +1-888-902-8333 and you can also chat us to get assistance to fix issues regarding HP printer.
 
Obtain speed up your performance with Assignment writers Dubai from uaeassignmenthelp.com. We provide homework helper services in the UAE. It's a huge organization that offers various assignment writing services at a very low price.
 
The top team of masters and Ph.D. degree professionals that understand students requirement and complete the task properly. The best team of native writers from the USA, Ireland, Australia, Singapore, UK, New Zealand, etc. Experts are ready to offer you business assignment help.

 
Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers. Keep it up in future, thanks for sharing such a useful post. Our toll-free number is accessible throughout the day and night for the customer if they face any technical issue in HP Laptop Call us +1-888-902-8333. HP Support !! HP Printer Support !! HP Printers Support !! HP Printer Support Number !! HP Help !! HP Support Phone Number !!
 
Get assignment writing help in Sydney from assignment writers Sydney on students assignment help.com. You can hire our experts for taking their help in your assignments. You can contact us at 24*7 hours.

 
I was worried about my complex economics Assignment writing. Then I took help from Go Assignment Help. I would have never able to complete my assignment myself. Their experts did it exceptionally well in a short span of time. I scored good grades just because they're Help With Assignment. I am pleased I made the right decision.
 
Our assignment help expert is known for handling every type of college assignments for students. With an extensive experience in assignment writing, we deliver premier assignments within the given deadline. Looking for my assignment help, we are here to assist you.
 
When you are blog-writing, it is okay to address your readers as ‘you’. In academic English essay writing, you strictly maintain a formal tone, so it is wise to avoid using ‘you’ in your English essay writing.
 
Students who are demanding for all the solutions at the right place at students assignment help our team is working to complete your problem like as we are giving personal statement help service to the students who want to get. Our best services are always open for students 24x7 so you don't have to go else. Our best team is working to give top services.

 
Students struggle a lot in completing their academic task, that is why the team of professional writers at StudentsAssignmentHelp.com is here to offer you its algebra homework help. Our online assignment makers understand all your requirements and work in the asked direction to compose an accurate assignment.

 
If you are getting difficulties with your Microsoft outlook then get support with us. We provide independent but reliable support for Outlook. If you are getting the issue with your outlook then it is not a big deal because it is a common thing that most customers faced. We offer Outlook support from our website and for instant support; you may also dial Outlook support number for the best help.

Outlook Support Number

 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?