Rövid történelmi áttekintés az idén májusban verziószámot lépett Laravel PHP keretrendszerről, felépítéséről és előnyeiről is. Ezen kívül szóba kerültek még a 2013. november végén érkező 4.1-es frissítés újdonságai is.
Hello Laravel 5!Tamás Erdélyi"Erdélyi Tamás (netpeople.hu) előadásában beszélni fog a legfontosabb változásokról és hogy miért is lesz ez jó nekünk. Röviden, címszavakban szó lesz a megváltozott könyvtárstruktúráról, az új validációs lehetőségekről, a fájlgenerátorokról, a fájlrendszer elérését kibővítő, új alap package-ről, a Flysystemről és az ún. Contractokról, amelyek még átláthatóbb, tisztább keretet adnak a rendszernek."
http://www.meetup.com/laravelbp/events/213586752/
Laravel - Veszprémi Technology MeetupBálint SzekeresSzekeres Bálint - Laravel PHP Framework - Fejlesszünk mint a profik
Minek framework? Miért Laravel? Ha a Hello World PHP-ban már a kisujjadban van, és tudod, hogy mit jelent az n:m adatbázis kapcsolat, akkor elmesélem neked, hogy legyél Laravel sensei!
Mobil Weekend - A tesztelői csapat evolúciójaCsaba SzabóA Mobil Weekend konferencián előadott prezentációm. (Budapest, 2015 Szeptember 17).
http://mobilweekend.hu/event/session/110494
Magyar Attila - Kata és a TDD a dojobanveszpremimeetupCode Retreat - pair programming Katával, avagy mennyire működőképesek a legextrémebb ötletek a szoftverfejlesztésben?
http://www.meetup.com/veszprem
Wandelbarkeit wieder herstellen - Refactoring C# Legacy CodeStefan Lieserhttp://refactoring-legacy-code.net
Die meisten Teams beginnen ihre Projekte nicht auf der sogenannten "grünen Wiese", sondern sie arbeiten an Bestandscode. Dieser Code ist häufig schon sehr alt und über die Jahre durch viele Entwicklerhände gegangen. Da mit den Legacy-Systemen nach wie vor Geld verdient wird, ist Abschalten keine Option. Auch Neuschreiben kommt aufgrund des Umfangs nicht in Frage. Um den Code wieder unter die Kontrolle des Teams zu bringen, muss ein Refactoring her.
In seinem Vortrag gibt Stefan Lieser Antworten auf die Frage, wie man dabei vorgeht. Er zeigt anhand von Beispielen auf, wie mit kleinen toolgestützten Refactoring-Maßnahmen die Lesbarkeit des Codes verbessert werden kann. Ferner zeigt er auf, wie wichtig automatisierte Tests als Sicherheitsnetz sind und wie sie auch bei Legacy-Code ergänzt werden können. Damit ist die Grundlage geschaffen, um mit der Mikado-Methode größere Refactorings umzusetzen, um auf diese Weise die Codebasis wieder wandelbar zu machen und so die hohen Investitionen zu schützen. Alle Beispiele liegen in C# vor, sind aber übertragbar auf andere Sprachen und Plattformen.
Moving away from legacy code (AgileCymru)Konstantin KudryashovGreenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects?
Does it mean that you need to descend into darkness of QA absence? Does it mean that you can’t use Agile or modern communication practices like BDD?
This talk will show you how to be successful even with the oldest legacy projects out there through the usage of Agile processes and tools like Impact Mapping, Feature Mapping, Example Workshop, Story and Spec BDDs.
Moving away from legacy code with BDDKonstantin KudryashovGreenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects? Does it mean that you need to descend into darkness of QA absence? This talk will show you how to be successful even with the oldest legacy projects out there through the introduction of Agile processes and tools like Behat.
Tendencias de la Tecnología de Información.Roberto Ramírez AmayaEste documento describe varias tendencias clave de la tecnología de la información. Discuten las tendencias en hardware, software, datos y comunicaciones, incluido el crecimiento de la computación en la nube, las redes sociales y la analítica de datos. También cubre temas como la calidad total en la administración de TI, la reingeniería de los procesos empresariales y la administración de tecnologías de información. El documento concluye que el avance rápido de la tecnología representa oportunidades para mejorar la product
Refactoring legacy code driven by tests - ITALuca MinudelAre you working on code poorly designed or on legacy code that’s hard to test? And you cannot refactor it because there are no tests?
During this Coding Dojo you’ll be assigned a coding challenge in Java, C#, Ruby, JavaScript or Python. You will face the challenge of improving the design and refactoring existing code in order to make it testable and to write unit tests.
We will discuss SOLID principles, the relation between design and TDD, and how this applies to your solution.
Reading list:
Growing Object-Oriented Software, Guided by Tests; Steve Freeman, Nat Pryce
Test Driven Development: By Example; Kent Beck
Working Effectively with Legacy; Michael Feathers
Agile Software Development, Principles, Patterns, and Practices; Robert C. Martin (C++, Java)
Agile Principles, Patterns, and Practices in C#; Robert C. Martin (C#)
Laravel Beginners Tutorial 1Vikas ChauhanVikas Chauhan presented a document outlining 5 exercises for learning Laravel: 1) Installation and configuration, 2) Writing a Hello World program, 3) Using Laravel Blade templates, 4) Implementing layouts with Blade, and 5) Different types of routes. Each exercise includes multiple tasks with instructions on creating controllers, views, and routes to demonstrate different Laravel features.
Mi a baj a DrupaloddalthesnufkinA 2012-es Drupal Hetvegen tartott eloadasom bemutatja a legtipikusabb Drupalos hibakat es hogy hogyan lehet kikerulni oket.
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Open AcademyTanácsok programozóknak, és üzemeltetőknek arról, hogy hogyan ne szúrjunk ki egymással és saját magunkkal.
Két Java fejlesztő első Scala projektjeDPC Consulting LtdAuthor: Szilárd Szabó, DPC Consulting
Event: Hungarian Oracle User Group, Developer Day, 2015 Oct
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula TóthA Pannon Egyetemen fejlesztett felhő alapú workflow rendszer (ORENBI) back-end oldali fejlesztése alapján a Műszaki Informatikai karon tartott tanszéki szeminárum során előadott prezentációnk. A prezentáció témája az alkalmazott technológiák és architektúrális valamint TDD módszereink bemutatása és tapasztalataink átadása.
Hogy kerül a csizma az asztalra?Open AcademyPontosabban a HTML. Az ötös. És hogy kerül a JavaScript a szerverre? Mi közük ezeknek egymáshoz? Mibe ásd bele magad, ha szeretnél felkészülni a jövőre?
Moving away from legacy code (AgileCymru)Konstantin KudryashovGreenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects?
Does it mean that you need to descend into darkness of QA absence? Does it mean that you can’t use Agile or modern communication practices like BDD?
This talk will show you how to be successful even with the oldest legacy projects out there through the usage of Agile processes and tools like Impact Mapping, Feature Mapping, Example Workshop, Story and Spec BDDs.
Moving away from legacy code with BDDKonstantin KudryashovGreenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects? Does it mean that you need to descend into darkness of QA absence? This talk will show you how to be successful even with the oldest legacy projects out there through the introduction of Agile processes and tools like Behat.
Tendencias de la Tecnología de Información.Roberto Ramírez AmayaEste documento describe varias tendencias clave de la tecnología de la información. Discuten las tendencias en hardware, software, datos y comunicaciones, incluido el crecimiento de la computación en la nube, las redes sociales y la analítica de datos. También cubre temas como la calidad total en la administración de TI, la reingeniería de los procesos empresariales y la administración de tecnologías de información. El documento concluye que el avance rápido de la tecnología representa oportunidades para mejorar la product
Refactoring legacy code driven by tests - ITALuca MinudelAre you working on code poorly designed or on legacy code that’s hard to test? And you cannot refactor it because there are no tests?
During this Coding Dojo you’ll be assigned a coding challenge in Java, C#, Ruby, JavaScript or Python. You will face the challenge of improving the design and refactoring existing code in order to make it testable and to write unit tests.
We will discuss SOLID principles, the relation between design and TDD, and how this applies to your solution.
Reading list:
Growing Object-Oriented Software, Guided by Tests; Steve Freeman, Nat Pryce
Test Driven Development: By Example; Kent Beck
Working Effectively with Legacy; Michael Feathers
Agile Software Development, Principles, Patterns, and Practices; Robert C. Martin (C++, Java)
Agile Principles, Patterns, and Practices in C#; Robert C. Martin (C#)
Laravel Beginners Tutorial 1Vikas ChauhanVikas Chauhan presented a document outlining 5 exercises for learning Laravel: 1) Installation and configuration, 2) Writing a Hello World program, 3) Using Laravel Blade templates, 4) Implementing layouts with Blade, and 5) Different types of routes. Each exercise includes multiple tasks with instructions on creating controllers, views, and routes to demonstrate different Laravel features.
Mi a baj a DrupaloddalthesnufkinA 2012-es Drupal Hetvegen tartott eloadasom bemutatja a legtipikusabb Drupalos hibakat es hogy hogyan lehet kikerulni oket.
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Open AcademyTanácsok programozóknak, és üzemeltetőknek arról, hogy hogyan ne szúrjunk ki egymással és saját magunkkal.
Két Java fejlesztő első Scala projektjeDPC Consulting LtdAuthor: Szilárd Szabó, DPC Consulting
Event: Hungarian Oracle User Group, Developer Day, 2015 Oct
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula TóthA Pannon Egyetemen fejlesztett felhő alapú workflow rendszer (ORENBI) back-end oldali fejlesztése alapján a Műszaki Informatikai karon tartott tanszéki szeminárum során előadott prezentációnk. A prezentáció témája az alkalmazott technológiák és architektúrális valamint TDD módszereink bemutatása és tapasztalataink átadása.
Hogy kerül a csizma az asztalra?Open AcademyPontosabban a HTML. Az ötös. És hogy kerül a JavaScript a szerverre? Mi közük ezeknek egymáshoz? Mibe ásd bele magad, ha szeretnél felkészülni a jövőre?
2. Ki vagyok én?
• Webfejlesztő (back-end, PHP)
• 11 éve foglalkozom weboldalakkal
• Korábban CodeIgniter fan
• 2013. február óta a netpeople.hu
csapatát erősítem
6. Taylor Otwell
• 27 éves fejlesztő, Arkansasból
• A PHP előtt .NET-tel foglalkozott
• Jelenleg a UserScapenél dolgozik
http://userscape.com
• Tipikus one-man-army, lelkes
segítőkkel a háta mögött:
Dayle Rees, Shawn McCool, Je!rey Way,
Jason Lewis, Ben Corlett, Franz Liedke,
Dries Vints, Mior Muhammad Zaki és Phil
Sturgeon
• Twitter: @taylorotwell
7. Előzmények
• 2010-2011 között járunk.
• A CodeIgniter 2 képtelen volt felzárkózni, az EllisLab
mostohagyermeke lett.
• A többi framework lassan adaptálta a PHP 5.3 újdonságait,
nem tudtak elszakadni (PHP 4-ig kompatibillisek).
• Taylor célkitűzései: olyan keretrendszer, amit a fejlesztő
szívesen használ, élvezet vele fejleszteni, tiszta és
olvasható kód, alapos dokumentáció, gyorsan
megtanulható.
8. Két év, négy verziószám
Laravel# # # 2011. június
Laravel 2# # 2011. november
Laravel 3# # 2012. febuár
Laravel 4# # 2013. május
14. Egy Laravel projekt
• app
• commands
• config
• controllers
• database
• lang
• models
• start
• storage
• test
!
• views
• filters.php
• routes.php
• bootstrap
• public
• vendor
15. Expresszív kód
$articles = Article::where('status', '=', 1)
->orderBy('date', 'desc')
->skip(10)
->take(5)
->get();
!
Redirect::to('login')
->with('message', 'Sikertelen bejelentkezés!’);
!
Cookie::forever('remember_me', true);
Anélkül, hogy tudnánk pontosan mit csinál, pontosan tudjuk mit csinál.
16. Statikus interfész az alkalmazás IoC (Inversion of Control)
konténerében elhelyezkedő osztályaihoz.
$filesystem = new Filesystem(...)
$fileloader = new Fileloader($filesystem);
$config = new Config($fileloader, 'dev');
$appName = $config->get('application.name');
helyett
$appName = Config::get('application.name');
Nem statikus - Facade!
18. A route és RESTful
Route::controller('hirek', 'NewsController');
class NewsController
{
public function getIndex() {...}
public function getArticle() {...}
public function postComment() {...}
}
!
!
Route::resource('hirek', 'NewsController');
class NewsController
{
public function index() {...} // GET /hirek -> NewsController::index()
public function create() {...} // GET /hirek/uj -> NewsController::create()
public function store() {...} // POST /hirek -> NewsController::store()
public function show() {...} // GET /hirek/{id} -> NewsController::show($id)
public function edit() {...} // GET /hirek/{id}/szerk -> NewsController::edit($id)
public function update() {...} // PUT/PATCH /hirek/{id} -> NewsController::update($id)
public function destroy() {...} // DELETE /hirek/{id} -> NewsController::destroy($id)
}
1.
2.
19. Route nevek és $lterek
1.
2.
Route::get('hirek/{id}'), array('as' => 'article', function(){
return 'Ez egy hír!';
});
URL::route('article', array('id' => 1));
Redirect::route('article', array('id' => 1));
!
!
Route::filter('auth', function(){
if (Auth::guest()) {
return Redirect::to('bejelentkezes');
}
});
Route::get('admin', array('before' => 'auth', function(){
return 'Be vagy jelentkezve, üdvözlünk az adminfelületen!';
});
23. Eloquent: kapcsolatban
• Egy-az-egyhez
• Egy-a-többhöz
• Több-a-többhöz
• Polimor#kus
kapcsolatok
class User extends Eloquent {
!
public function phone()
{
return $this->hasOne('Phone');
}
!
}
!
User::find(1)->phone;
!
!
MySQL:
!
select * from users where id = 1
select * from phones where user_id = 1
35. Mérföldkövek
4.0% % % 2013. május
4.1% % % 2013. november
4.2% % % 2014. május
4.3% % % 2014. november
36. • Polimor$kus Több-Több kapcsolat (Polymorphic Many To Many),
több modellhez.
• Remote: integrált Rocketeer package (http://anahkiasen.github.io/
rocketeer/) olyan, mint a Capistrano a Ruby-ban, code
deploymenthez.
• Eloquent:
• whereHas: pl. egy blognál az összes olyan poszt lekérése, ahol
egy adott user már kommentelt
Post::whereHas('comment', function($q) {
% % $q->where('user_id', 1); }, '>', 0)->get();
});
• hasMany
A Laravel 4.1 újdonságai
37. • Új Artisan parancsok:
• artisan tail - error log valós időben.
• artisan tinker - valós idejű, interaktív kódtesztelés
• artisan changes - changelog
• Cache: a Cache::section() kibővül egy tag funkcióval, címkézni
lehet majd a cache szekciókat.
• Queue: Redis támogatás, priorítás kezelés.
• Sebességoptimalizálás
• A frissítés mindössze ennyi:
composer update
A Laravel 4.1 újdonságai
38. Hasznos könyvek a kezdéshez
Dayle Rees:
Code Bright
Chris Fidao:
Implementing
Laravel
Chuck Heinzelman:
Getting Stu&
Done With
Laravel 4
Christopher
Pitt:
Laravel 4
Cookbook
Je!rey Way:
Laravel Testing
Decoded
Taylor Otwell:
From Apprentice
to Artisan