Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Bluz - наш код как музыка.
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
fwdays
October 21, 2013
Programming
69
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
910
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
940
Функциональный тулчейн Nix
fwdays
1
560
Other Decks in Programming
See All in Programming
Building an Out-of-Order CPU
latte72
1
790
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
120
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
450
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
すこし踏み込む CancellationToken
htkym
2
610
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
AHC070解法紹介
eijirou
0
130
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
200
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.5k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
170
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Making Projects Easy
brettharned
120
6.8k
What's in a price? How to price your products and services
michaelherold
247
13k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
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
Спасибо за внимание