Scala is a new and exciting programming language that is a hybrid between object oriented languages such as Java and functional languages such as Haskell. As such it has its own programming idioms and development styles.
Scala Design Patterns looks at how code reuse can be successfully achieved in Scala. A major aspect of this is the reinterpretation of the original Gang of Four design patterns in terms of Scala and its language structures (that is the use of Traits, Classes, Objects and Functions). It includes an exploration of functional design patterns and considers how these can be interpreted in Scala's uniquely hybrid style.
A key aspect of the course is the many code examples that accompany each design pattern, allowing the reader to understand not just the design pattern but also to explore powerful and flexible Scala language features. Including numerous source code examples,
Client feedback shows that delegates on our courses will best engage when they can relate course topics to their own day-to-day practices and requirements. Where possible, we run this course as a consultative, workshop-style event, in which discussion of relevant topics takes place in relation to the delegates' own applications and scenarios.
To facilitate this type of event, a subject matter expert leads the training, hands-on labs and discussions to ensure course topics are covered in a meaningful, relevant and timely manner. Delegates may be able to bring their own practical requirements and work to the course if the subjects and course topics are suitable.
Part I – Introduction.- Introduction.- Design Patterns.- UML and Scala.-
Part II – Fundamental Patterns.- Immutability.- Singleton.- Marker Trait.- Delegation.-
Part III – Code Reuse Patterns.- Lazy Parameters.- Partially Applied Functions.- Trait Based Template Operation.- Stackable Traits.- Currying and Code Reuse.- Cake Pattern.- Structural Injection.- Implicit Injection Pattern.-
Part IV – Gang of Four Patterns.- Gang of Four Design Patterns.- Gang of Four Patterns Catalogs.- Factory Operation.- Abstract Factory Pattern.- Builder.- Adapter Pattern.- Decorator.- Facade.- Flyweight.- Proxy.- Filter.- Bridge.- Chain of Responsibility.- Command.- Strategy.- Mediator.- Observer.- State.- Visitor.- Memento.-
Part V – Functional Design Patterns.- Functor.- Applicative Functor.- Monoid Pattern.- Monad Pattern.- Foldable.- Zipper.- Lens Pattern.- View Pattern.- Arrow Pattern.
Receive the latest version of this course by email & subscribe to our Newsletter
11/10/2017: Python has taken the world of software development by storm. Here are the reasons why: Python is simple enough to be used to teach young children to program, yet it is also advanced enough to be used by M.I.T. to teach computer science and is perhaps the most widely used dynamic language with many high quality, open source libraries and frameworks. Today's business is driven by data. Data gives your business a competitive advantage. Python enables you to extract and analyze your data with relative ease. An application that used to take weeks to develop, can be developed with Python in...
05/10/2017: Back in March 2014, the Angular team dropped a bomb by announcing Angular 2 and everyone started yelling. Instead of an evolutionary step forward, the proposal was too revolutionary for its time. As with every revolution, the promise was to break from the past and build а bright new future. The problem was that it was early 2014 and no one was ready: ES6 was one year away from standardization; AtScript sounded too exotic; two-way data binding was really needed for data over forms apps. But most of all backwards compatibility was really a must for such a popular and widely used framework....
03/10/2017: Traditionally Cyber security has been associated mainly with penetrating networks and infrastructure. Now a more subtle level of attack needs to be considered if we are to properly protect our corporate and client systems; Application level attack. As attackers become more sophisticated, Organisations must also look at whether their web applications (be it Java, .NET, PHP....) are coded with security in mind. If not, it is only a matter of time before they will be exposed. Developers can be quite protective about their applications and quality of code, but time and again we see "secure"...
19/10/2017: Nowadays, there is a significant business advantage in being able analyse, process and visualize "big data". While there is no agreed definition of "big data" it is generally accepted that big data refers to terabytes or larger data sets. The tools, techniques and systems for working with "big data" is known as data science. Big problem is the lack of professionals who can work effectively with data on this scale. Fortunately, the Python programming language is packed with libraries designed specifically for data science applications. To this end, JBI was enagaged to provide Python training...
11/10/2017: The training was to target a team of developers, with a mix of Java, C# and some C++. The team made heavy use of Java SE with some elements of Spring. Most had been with the company for many years, and were not that familiar with some of the more current trends and best practices when using the Java programming language and related enterprise technologies. The requirement was to upskill this team of about 20 individuals to the current best practices and trends within the Java community, and clearly an off the shelf standard course would not really be relevant to them. What we provided?...
AI & ML training course
React training course
Threat Modelling training course
Python for Data Analysts training course
Power BI training course
Machine Learning training course
Spring & Boot Microservices training course
Terraform training course
Kubernetes training course
C++ training course
Biztalk training course