background preloader

The Clean Architecture

The Clean Architecture
Over the last several years we’ve seen a whole range of ideas regarding the architecture of systems. These include: Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn and adopted by Steve Freeman, and Nat Pryce in their wonderful book Growing Object Oriented Software Onion Architecture by Jeffrey Palermo Screaming Architecture from a blog of mine last year DCI from James Coplien, and Trygve Reenskaug. BCE by Ivar Jacobson from his book Object Oriented Software Engineering: A Use-Case Driven Approach Though these architectures all vary somewhat in their details, they are very similar. Each of these architectures produce systems that are: Independent of Frameworks. The diagram at the top of this article is an attempt at integrating all these architectures into a single actionable idea. The Dependency Rule The concentric circles represent different areas of software. The overriding rule that makes this architecture work is The Dependency Rule. Entities Use Cases Conclusion

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

Related:  Veille InformatiqueTransverse

Teach kids programming A collection of resources I’ve been gathering the best resources to teach children & teens programming — books, environments, apps, courseware and games. These resources are meant for teachers and parents who want to have their children fall in love with computers and see the magic of programming. I’m staying away from philosophical debates of whether kids should learn to program, when they should start and other such topics.

7 Rules for Creating Gorgeous UI (Part 1) Introduction OK, first things first. This guide is not for everyone. Who is this guide for? Orient Technologies – OrientDB Distributed Graph Database OrientDB is a 2nd Generation Distributed Graph Database with the flexibility of Documents in one product. It is a unique, true multi-model DBMS equipped to tackle today’s big data challenges and offers multi-master replication, sharding as well as more flexibility for modern, complex use cases. Users get all of this with an Open Source commercial friendly Apache 2 license. JSON: What It Is, How It Works, & How to Use It This week I want to cover a topic that I feel has become an important part of any developer’s toolkit: the ability to load and manipulate JSON feeds from other sites via AJAX. Many sites are sharing data using JSON in addition to RSS feeds nowadays, and with good reason: JSON feeds can be loaded asynchronously much more easily than XML/RSS. This article will cover the following: What is JSON?Why does JSON matter?

TIOBE Software: Tiobe Index TIOBE Index for January 2016 January Headline: Java is TIOBE's Programming Language of 2015! Java has won the TIOBE Index programming language award of the year. Security for the Web: HTML5, Local Storage, and XSS A nice new feature of HTML 5 is local storage. Briefly, this is a client side storage option that can be easily accessed via JavaScript. The benefit of local storage over other client side storage options is that local storage allows more storage space than other options (cookies, flash obj, etc). In addition, unlike cookies, the data is not automatically appended to every request by the browser. This is a nice benefit for those attempting to minimize data transmission between the client and server. However, there are a few security considerations that should be evaluated before completely jumping on board with local storage.

Architecture Patterns Introduction | US Treasury Architecture Development Guidance (TADG) | IBM Patterns for e-Business | Some Pattern Resources This chapter provides guidelines for using architecture patterns. Introduction Your Password is Too Damn Short I'm a little tired of writing about passwords. But like taxes, email, and pinkeye, they're not going away any time soon. Here's what I know to be true, and backed up by plenty of empirical data: No matter what you tell them, users will always choose simple passwords.No matter what you tell them, users will re-use the same password over and over on multiple devices, apps, and websites. If you are lucky they might use a couple passwords instead of the same one. Design Patterns In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Uses of Design Patterns

RESTful Service From Ajax Patterns Evidence: 3/3 Tags: API HTTP REST Standard Universal Web Microservices "Microservices" - yet another new term on the crowded streets of software architecture. Although our natural inclination is to pass such things by with a contemptuous glance, this bit of terminology describes a style of software systems that we are finding more and more appealing. We've seen many projects use this style in the last few years, and results so far have been positive, so much so that for many of our colleagues this is becoming the default style for building enterprise applications. Sadly, however, there's not much information that outlines what the microservice style is and how to do it. In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.

Amazon Launches IoT Platform Beta At Amazon’s recent re:Invent developer conference in Las Vegas, the company announced a new Internet of Things (IoT) platform called AWS IoT. This platform is currently in beta and is available to AWS subscribers. Dr. Matt Wood, general manager, product strategy at AWS describes the AWS IoT platform as a way “to connect devices to the AWS cloud. It also allows your company to collect, store, analyze and take action against the large volumes of data that is streaming from your connected devices.” Underneath the IoT platform is a collection of SDKs and AWS services including:

Related: