Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bluz - наш код как музыка.
Search
fwdays
October 21, 2013
Programming
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Bluz - наш код как музыка.
fwdays
October 21, 2013
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.2k
Beyond Testing Михаил Боднарчук
fwdays
0
870
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
2k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1.1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.9k
Phalcon. Что нового? Александр Торош
fwdays
0
1.2k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.5k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
880
Функциональный тулчейн Nix
fwdays
1
520
Other Decks in Programming
See All in Programming
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
200
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
790
Google Apps Script で Ruby を動かす
kawahara
0
130
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.8k
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
940
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
530
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
300
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.4k
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
120
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
130
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
How to Ace a Technical Interview
jacobian
281
24k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Statistics for Hackers
jakevdp
799
230k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
Bluz – наш код как музыка Антон Шевчук NIX Solutions
Ltd. http://anton.shevchuk.name @AntonShevchuk
Music? O RLY?
Why? • Почему не "as is"? • Почему не ZF2/Symfony2?
• Почему не Yii? • Почему не Kohana/CodeIgniter? • Почему не Silex/Slim/etc? • Почему не Phalcon?
Usability кода • Стандарты кодирования • Отсутствие избыточности • Читаемость
кода • Предсказуемость кода
Usability кода. Profit! • Изучаю проект за час • Нахожу
баги по скриншоту • Копирую и работает
PHP 5.4+ • PSR-0 • PSR-1 • PSR-2 • PSR-3
• namespaces • closures • traits • goto
Ещё… • Composer • RequireJS (for AMD) • jQuery •
Twitter Bootstrap • GitHub - https://github.com/bluzphp • Travis CI • support redactorjs • support backbone
Model V C <?php namespace Application\Users; class Table extends \Bluz\Db\Table
{ protected $table = 'users'; protected $primary = array('id'); } /** * @property integer $id * @property string $login */ class Row extends \Bluz\Db\Row { }
M V Controller <?php return /** * @privilege View-Profile *
@cache 5 minutes * @route /profile/{$id}/ * @param integer $id * @return \closure */ function ($id) use ($view) { $view->user = Users\Table::findRow($id); };
M View C <h2><?=$user->login?></h2> <a href="<?=$this->url("users", "profile',["id"=>$user->id])?>" class="ajax">view</a> <h2>admin</h2> <a
href="/profile/1" class="ajax">view</a>
Help! • RESTFul Controller • CRUD Controller • Grid компонент
• DBQuery Builder • Mailer ~~ PHPMailer • Translate ~~ gettext
Write less do more <a class="ajax" href="/get">...</a> <a class="confirm" href="/block"
data-id="42" data-confirm="Are you sure?">...</a> <a class="ajax confirm" href="/block" data-id="42">...</a> <form action="/login" class="ajax" > <input type="text" name="login"/> <input type="password" name="password"/> <button type="submit"> </form>
Perfomance (jmeter)
Perfomance (memory)
Generation P • Модули готовые к изменениям • Модули готовые
к использованию
Source https://github.com/bluzphp
Спасибо за внимание