background preloader

Design

Facebook Twitter

Oop - HAS-A, IS-A terminology in object oriented language. SOLID: Liskov Substitution Principle • SoftwareYoga. This is the third in the series of posts on SOLID Software Principles. We previously covered the Single Responsibility Principle and the Open-Close Principle. In this post, I will take you through the L in SOLID, the Liskov Substitution Principle. The primary idea behind the Open-Closed principle is achieved using inheritance i.e. introduce new classes for new functionality and keep the classes related to existing functionality untouched.

But what differentiates a good inheritance structure from a bad one? That is where the Liskov Substitution Principle comes into play. The Liskov Substitution Principle is a simple yet effective way to improve the code. However, it is not so straight forward to identify when the code is breaking the principle. Originally written by Barbara Liskov, It states: More simpler definitions have arisen since the original paper and they go as: That sounds simple enough, but there is more than meets the eye. Signatures requirements No new exceptions Example. Dependency Injection Inversion - Clean Coder. Dependency Injection is all the rage. There are several frameworks that will help you inject dependencies into your system. Some use XML (God help us) to specify those dependencies. Others use simple statements in code. In either case, the goal of these frameworks is to help you create instances without having to resort to new or Factories. I think these frameworks are great tools.

Consider, for example, this simple example using Google’s Guice framework. public class BillingApplication { public static void main(String[] args) { Injector injector = Guice.createInjector(new BillingModule()); BillingService billingService = injector.getInstance(BillingService.class); billingService.processCharge(2034, "Bob"); } } My goal is to create an instance of BillingService. Oh ho! And here’s the magic module that tells Guice how to create the arguments for the BillingService Clever these Google-folk! Isn’t that cool! Well, yes it’s cool. Why is this worse? I don’t want to write a Guice application. Iluwatar/java-design-patterns. Mobile First With Bootstrap 3. Ok so a couple of weeks now, on it's very own two year anniversary Mark Otto and the rest of the guys responsible for the develop and maintenance of Bootstrap announced the official release of the framework's third version, and it came on steroids, let's see what we're getting.

What's New? First off, the most important changes you're going to find in the new Bootstrap release is the support for responsive websites, as a matter of fact the responsive module has been removed. Now, from its core, Bootstrap is responsive, more than that, this new version comes with the approach of "Mobile First", meaning that almost everything has been redesigned to start from a lower screen size and scale up (more on that in a bit). Nearly everything has been redesigned and rebuilt to start from your handheld devices and scale up. In the look and feel you'll see a lot of changes too, prominently the fact that the whole style has gone flat, and there's an optional theme for a 2.0-er look. Grid System Forms. Java Applications and Coffee: The Variations are Endless. Chapter 21, The Basics of Composition. For centuries there has been a link between art and mathematics. For centuries there has been a link between art and mathematics, but how can you quantify beauty?

How can you create a formula for aesthetic appeal? Philosophers, mathematicians, architects and artists have tried to answer these questions for thousands of years. During art college I was subjected to a lecture on the Golden Section, (who remembers that lecture, come on hands up?) , that ambiguous set of rectangles that is requisite art school discussion.

During this lecture I was shown slide after slide of seemingly tenuous links between paintings and sculptures, and this set of rectangles. My lecturer at the time seemed as equally uninterested, droning along in self–imposed boredom. The Golden Section The Golden Section, Golden Ratio, and the grandiose Divine Proportion are all names for the same thing; a ratio of 1.618. Throughout art school I was taught to ‘feel’ my way round composition. The Rule of Thirds Looking Room. Don’t design like a programmer, part 2 « User Experience Design Training & Consulting–UX Design Edge. In my original Don’t design like a programmer post, I explored a common UI design trap that programmers often fall into, where you have a data structure, map that directly to a UI, and expect the results to be a good user experience. Sometimes that approach works just fine, but often it does not.

The original post explains the potential usability problems in detail. This is an easy trap to fall into if you are thinking about the code instead of your users. As a developer myself, I’m very sympathetic here. Someone named pankratiev put a link to that post on Y Combinator Hacker News and my site traffic just exploded—so much that my web host couldn’t handle it. I will start that challenge with this post. First, the original designs Here’s the first UI in the post: Actually, I didn’t say this was a bad design—rather I showed how this UI is a direct mapping of this data structure: struct UserOptions { bool Option1; bool Option2; String Option3: String Option4: struct RetrevalOptions { bool NoClobber; Sortable. Using DataTable with Editable plugin - Getting the data source via ajax request.

HomeWiki Preamble DataTable Editable plugin works with DataTables that dinamically read cells that should be displayed via ajax call. In this example, cells are not placed in the source of the page - they is loaded from the server-side via JSON request. Once cells are loaded from the source via AJAX call, they are processed on the client side. Live example Processing... Showing 1 to 10 of 57 entries Initialization code In the initialization code you will need to pass URL of the data source that contains data that will be loaded. Additional HTML code Html code is same as in the other cases, however you will need to add one change into the "Add" form. <! Other examples. Example - Row selection (multiple rows) Design for Hackers: Reverse Engineering Beauty: David Kadavy: 9781119998952: Amazon.com: Books. Butterick’s Practical Typography. This is a bold claim, but I stand be­hind it: if you learn and fol­low these five ty­pog­ra­phy rules, you will be a bet­ter ty­pog­ra­pher than 95% of pro­fes­sional writ­ers and 70% of pro­fes­sional de­sign­ers.

(The rest of this book will raise you to the 99th per­centile in both categories.) All it takes is ten min­utes—five min­utes to read these rules once, then five min­utes to read them again. Ready? Go. The ty­po­graphic qual­ity of your doc­u­ment is de­ter­mined largely by how the body text looks. That’s it. Then, if you’re ready for a lit­tle more, try the sum­mary of key rules. If you’re ready for a lot more, start at the fore­word and keep reading.