The presentation was created in the Apple Pages, and then converted to a MS PowerPoint format, due to that, on some slides may apper poor quality and ugly look.
Practical JavaScript Programming - Session 1/8Wilson Su
JavaScript is one of the most popular skills in today’s job market. It allows you to create both client- and server-side applications quickly and easily. Having a solid understanding of this powerful and versatile language is essential to anyone who uses it.
“Practical JavaScript Programming” does not only focus on best practices, but also introduces the fundamental concepts. This course will take you from JavaScript basics to advanced. You’ll learn about topics like Data Types, Functions, Events, AJAX and more.
Elixir and Dialyzer, Types and Typespecs, using and understanding themDan Janowski
A Talk given at NYCElixir Feb 21, 2017 by Dan Janowski. An introduction to types in Elixir, success typing, and examples of how to write typespecs as well as including dialyzer in your app and some details on how to interpret the output.
Symfony 2.0 is a major step forward for the symfony project. This new version introduces new concepts and new components, and make the framework even more decoupled and flexible than before. As an added bonus, the framework is also more lightweight and much faster. This session will give you a feeling of the power of Symfony 2.0 by introducing the main new components of the framework.
Practical JavaScript Programming - Session 1/8Wilson Su
JavaScript is one of the most popular skills in today’s job market. It allows you to create both client- and server-side applications quickly and easily. Having a solid understanding of this powerful and versatile language is essential to anyone who uses it.
“Practical JavaScript Programming” does not only focus on best practices, but also introduces the fundamental concepts. This course will take you from JavaScript basics to advanced. You’ll learn about topics like Data Types, Functions, Events, AJAX and more.
Elixir and Dialyzer, Types and Typespecs, using and understanding themDan Janowski
A Talk given at NYCElixir Feb 21, 2017 by Dan Janowski. An introduction to types in Elixir, success typing, and examples of how to write typespecs as well as including dialyzer in your app and some details on how to interpret the output.
Symfony 2.0 is a major step forward for the symfony project. This new version introduces new concepts and new components, and make the framework even more decoupled and flexible than before. As an added bonus, the framework is also more lightweight and much faster. This session will give you a feeling of the power of Symfony 2.0 by introducing the main new components of the framework.
This session will introduce you to the new Form component in Symfony2. With the new domain-driven paradigma and its flexible design, the component opens a door to a wide range of possibilities. The brand new architecture makes creating complex forms easier and faster than ever before. This talk will teach you today what you need to know to build powerful forms tomorrow.
Everything you always wanted to know about forms* *but were afraid to askAndrea Giuliano
La componente dei Form di Symfony2 rende possibile la costruzione di diverse tipologie di form in modo del tutto semplice. La sua architettura flessibile e altamente scalabile permette di poter gestire strutture adatte ad ogni tipo di esigenza. Tuttavia, conoscere come utilizzare appieno tutta la sua potenza non è banale. In questo talk verrà trattato in profondità la componente Form di Symfony2, mostrando i suoi meccanismi di base e come utilizzarli per estenderli ed introdurre la propria logica di business, così da costruire form cuciti a misura delle tue necessità.
So S.O.L.I.D Fu - Designing Better CodeNeil Crookes
A chat about some of the most important principles in software development. Discover or get a refresher on these tried and tested techniques for designing better code.
Code: https://github.com/neilcrookes/SoSOLIDFu/
Building a Pyramid: Symfony Testing StrategiesCiaranMcNulty
The last few years have seen a huge adoption of testing practices, and an explosion of different testing tools, in the PHP space. The difficulties come when we have to choose which tools to use, in what combinations, and how to apply them to existing codebases.
In this talk we will look at what tools are available, what their strengths are, how to decide which set of tools to use for new or legacy projects, and when to prioritise decoupling and testability over the convenience we get from our frameworks.
This session will introduce you to the new Form component in Symfony2. With the new domain-driven paradigma and its flexible design, the component opens a door to a wide range of possibilities. The brand new architecture makes creating complex forms easier and faster than ever before. This talk will teach you today what you need to know to build powerful forms tomorrow.
Everything you always wanted to know about forms* *but were afraid to askAndrea Giuliano
La componente dei Form di Symfony2 rende possibile la costruzione di diverse tipologie di form in modo del tutto semplice. La sua architettura flessibile e altamente scalabile permette di poter gestire strutture adatte ad ogni tipo di esigenza. Tuttavia, conoscere come utilizzare appieno tutta la sua potenza non è banale. In questo talk verrà trattato in profondità la componente Form di Symfony2, mostrando i suoi meccanismi di base e come utilizzarli per estenderli ed introdurre la propria logica di business, così da costruire form cuciti a misura delle tue necessità.
So S.O.L.I.D Fu - Designing Better CodeNeil Crookes
A chat about some of the most important principles in software development. Discover or get a refresher on these tried and tested techniques for designing better code.
Code: https://github.com/neilcrookes/SoSOLIDFu/
Building a Pyramid: Symfony Testing StrategiesCiaranMcNulty
The last few years have seen a huge adoption of testing practices, and an explosion of different testing tools, in the PHP space. The difficulties come when we have to choose which tools to use, in what combinations, and how to apply them to existing codebases.
In this talk we will look at what tools are available, what their strengths are, how to decide which set of tools to use for new or legacy projects, and when to prioritise decoupling and testability over the convenience we get from our frameworks.
Brief, short introduction to software design patters and good practises.
Apologises for any bad formatting but the presentation was made in Keynote and exported to .ppt format for slideshare.
Building High Perf Web Apps - IE8 FirestarterMithun T. Dhar
Video recordings of this session can be found here:
1. http://channel9.msdn.com/tags/IE%208%20Firestarter - (Developer)
2. http://edge.technet.com/Tags/IE+8+Firestarter/ - (IT Pro's)
If you need to download this file, or need more infomation contact Mithun Dhar via http://blogs.msdn.com/mithund
Everyone talks about raising the bar on the quality of code, but it’s hard to implement when you have no clue where to start. This talk is geared toward all levels of developers, and will teach you how to improve by using the right tools effectively – a must-attend for any PHP developer who wants to scale up their quality.
Michelangelo will tell us about Quality Assurance for PHP in general and show how different QA-related actions can be performed using PhpStorm IDE. The webinar will cover topics including:
Revision control
Syntax checking
Code documentation
Unit Testing with PHPUnit
Measuring code health with a variety of tools
Profiling and debugging with Xdebug
Automation with Phing
Team work and more.
We have just rolled out the Blunt umbrella site for the US in conjunction with the Tile launch. https://www.thetileapp.com
This US build was also part of a larger infrastructure setup to cater for the other markets.
We first deployed the US site. Shortly there after the NZ and Global site.
USA: bluntumbrellas.com/us
NZ: bluntumbrellas.com/nz
Global: bluntumbrellas.com
The site had some interesting challenges with the type of content that was to be displayed within a single page. For example every content page is a Basic Page.
Site Features:
Mega Menu
Background Video
jQuery UI
Several Sliders
Drupal Commerce
Picture and Breakpoints
In this talk I'll cover:
Business needs
Site and platform architecture
Theming
Picture and Breakpoints module
Hover state menu
Drupal Commerce
Memcache Gotha
Javascript and first-class citizenry: require.js & node.js
Javascript on web pages is ubiquitous and its problems are legendary. Javascript, seen as a second-class code citizen, is usually hacked together even by seasoned developers. New libraries (jQuery, prototype, backbone, knockout, underscore) and runtime tools (firebug, jasmine) look like they solve many problems - and they do. But they still leave poorly written code as just that. One key problem is that all javascript code lives globally and this results in poorly managed, tested and delivered code.
In this session, I will illustrate that we can treat javascript as a first-class citizen using with require.js and node.js: it can be modular, encapsulated and easily unit tested and added to continuous integration cycle. The dependencies between javascript modules can also be managed and packaged just like in C# and Java. In the end, we can resolve many javascript difficulties at compile time rather than waiting until runtime.
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег ЗинченкоGeeksLab Odessa
DDD in PHP on example of Symfony
Олег Зинченко
В докладе речь пойдет о том, что такое DDD и почему MVC годами вводит нас в заблуждение. Как автор пришёл к мысли о том, что просто писать структурированный код недостаточно. Будут описаны слои приложения DDD, как они взаимодействуют между собой. Какие архитектурные паттерны стоят за DDD и почему они облегчают жизнь разработчика. Когда лучше использовать DDD, какие достоинства и недостатки есть у этого подхода. Примеры использованиея DDD подхода в Symfony приложениях.
2. Bibliography
• Martin Fowler,Patterns of Enterprise Appication Architecture
• Matt Zandstra , PHP5 Objects, Patters, and Practice
• http://www.ustream.tv - New York PHP channel
• Symfony Live Berlin 2012 - https://joind.in/event/view/1114
• http://scholar.google.pl
• http://pzielinski.com
2
10. Transaction Script
Advantages: Disadvantages:
• simple procedural model • difficult to maintenance
• works well with a simple • code duplication
data access layer
• easy implementation of use
cases
10
13. Table Module vs
Transaction Script
Advantages: Disadvantages:
• less duplication • weak support for
polymorphism
• encapsulation
• no support ORM
• more organized and
structured code
• easy implementation by
technology support
13
14. Domain Model #1
1. class Hotel
2. {
3. protected $_hotelId;
4. protected $_rooms;
5.
6. public function bookRoom(User $user, $fromDate, $toDate)
7. {
8. $room = $this->_getRoomBetweenDates($fromDate, $toDate);
9.
10. if (is_null($room)) {
11. return false;
12. }
13.
14. $booking = $room->bookRoom(User $user, $fromDate, $toDate);
15.
16. return $booking;
17. }
18. }
19.
20. class Room
21. {
22. protected $_roomId;
23. protected $_bookings = array();
24.
25. public function bookRoom(User $user, $fromDate, $toDate)
26. {
27. $days = $this->_getAmountOfDays($fromDate, $toDate);
28.
29. if ($days < = 7) {
30. $booking = new Booking($user, new ShortBookingStrategy($user, $days));
31. } else {
32. $booking = new Booking($user, new NormalBookingStrategy($user, $days));
33. }
34.
35. return $booking;
36. }
37. }
14
15. Domain Model #2
1. class NormalBookingPriceStrategy extends BookingPriceStrategy
2. {
3. public function getPrice()
4. {
5. $price = $this->_days * 80;
6.
7. if ($this->_user->isLoyal()) {
8. $price = $price / 2;
9. }
10.
11. return $price;
12. }
13.}
14.
15.class ShortBookingPriceStrategy extends BookingPriceStrategy
16.{
17. public function getPrice()
18. {
19. return $this->_days * 100;
20. }
21.}
15
16. Domain Model vs
Procedural Pattern
• time-consuming
implementation
Advantages: • additional patterns
Disadvantages:
• prevents logic duplication - ORM
• more code readability - data source
• independence from the data
source
• much easier to unit test
16
17. SUMMARY
programming
scalability
language
modularity time-consuming
testable
size of project
(integration test)
skill of the developers
17
34. Advantages of Design
Pattern?
• speed up the development process,
• helps to prevent issues that can cause
major problems,
• patterns allow developers to communicate
using well-known, well understood names
for software interactions
34