In this, Episode 27 of the Coding Blocks Podcast, we are answering several questions from our listeners regarding: more frequent episodes, naming of classes / assemblies, Test Driven Development, the differences between MVC and MVVM and a number of other side conversations such as aliasing tables in SQL. As always we’d love to hear back from you and thank you for taking the time to listen to our podcast!
More Frequent Episodes?
We have a POLL! Would you like more frequent episodes?! If so, fill out the survey:
Project Euler is pronounced “Oiler” not “U-ler” – who would’ve thought?! We learned something!
Thanks to @kadkins511
Top Code ER not Top Code
The Band is Breaking Up
Yeah, Joe is moving. There may be a slight delay in getting the next episode out, but we’re going to do the best we can to get back in the saddle and get some more episodes in the queue. Joe is going to be a little preoccupied with moving, but we’ll be back soon!
We are going to strive to make sure we keep the quality of the audio and the content top-notch. It will be a bit of an experiment doing these remote recordings so bear with us while we find our way.
Status Report on New Year’s Resolutions
Michael – N/A – Call of Duty is trumping resolutions
Joe – Busy with moving – shingled and contagious – awesome
Allen – Begging for Youtube views – http://www.codingblocks.net/youtube
Backpedalling on Angular 2 because there is next to no documentation out there and it’s still very much in flux
NBA Playoffs stealing away his nights.
Questions and Answers
How do I know the proper way to name classes, assemblies, projects, etc?
Helpers, Utilities, Library, Lib, Manager, etc. What’s the correct thing to do?!
Follow the naming conventions that already exist in your existing application. If you are doing greenfield, then pick a path and stick with it. Consistency is probably the most important thing to keep in mind here. Remember you can refactor if necessary.
Frameworks vs Toolkits
Framework has a prescribed way of doing things whereas a Toolkit is something you utilize.
ORRRrrrr, you could do this – name your classes by using this Utility:
Little Bobby Tables
Code Complete – Has a nice section on naming conventions
If you are a programmer and you love code real estate, you absolutely MUST check out the LG 34UM95 Ultra Widescreen Monitor. It has a thunderbolt connection so it’ll work with your Mac (I’m using it with my 2011 Macbook Pro) and it has a number of other connections. KILLER monitor.
3440 x 1440 Resolution – Code Heaven!
Michael threatens Allen LIVE on the Podcast!!!
Aliasing Tables in SQL – the Great Debate
Really, this isn’t a debate – you should be aliasing your tables in a way where the aliases make sense. Joe is wrong!
You HAVE to alias a self-joining table
TDD – Test Driven Development – It Is Used Somewhere!
John wrote us to argue that TDD should be used for the pure reason that it forces developers to understand the underlying problem that is being solved rather than writing code that doesn’t necessarily meet the business needs. Extremely valid points – we definitely did not try to imply that it’s useless – quite the contrary. Our take on it was the fact that we’ve never (collectively) been at a company or on a team where TDD was acceptable as business members want to see progress which is slowed down, at least initially, with TDD. However, studies have been done that show that projects that start with TDD end up taking less time in the long run because the original tests help ensure bugs stay out of the system as development progresses.
“Requirement First Coding”
SpecFlow – .NET version
Design Pattern vs Algorithm – Are they the Same?
Twitter and E-mail have spoken – No, they’re not the same!
“A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise.”
“In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed.”
MVC vs MVVM – What’s the Difference?
Model = what it is
View = what it looks like
Controller = what it does
Excellent answer from TrueBlueAussie
1. Views display a certain shape of data. They have no idea where the data comes from.
2. ViewModels hold a certain shape of data and commands, they do not know where the data, or code, comes from or how it is displayed.
3. Models hold the actual data (various context, store or other methods)
4. Controllers listen for, and publish, events. Controllers provide the logic that controls what data is seen and where. Controllers provide the command code to the ViewModel so that the ViewModel is actually reusable.
ViewModel is an abstraction from the view, and it pulls the models together in such a a way as to make it easier for the view to manipulate
Also known as Model-View-Binder
How to Learn Things not Available at your Job
- Attend conferences
- Attend classes
- Attend Meetups
- Do side projects
Making Choices in Architecture
- Speed to Market matters
- Cost of Implementation matters A LOT – price of the technologies chosen / price of skilled programmers
- Having resources (workers) who can work on the selected tech stack
Mike – use a “WHERE” clause – if you’re writing a SQL UPDATE or DELETE, put the WHERE CLAUSE!!!
Allen – http://www.apiary.io – build server side API’s without any code
Joe – “When you’re online, no one knows you’re dead” – Have directions for your significant other or family members in case you pass away. How to get into emails, get backups, etc. We take things for granted as techies and there are a LOT of people who don’t know how to do what we do. Do we need a Wiki for our life?!