Merhabalar,
Eğer siz bir hastane otomasyonu geliştirecek olsaydınız, ne yapardınız?
Uzun zamandır framework seçiminde karar veremedim. FW kullanmalıyım, evet bu kesin ama bir hastane otomasyonu için ne kullanmalıyım?
Hangisinde karar kılsam, yarın öbür gün beni yarı yolda bırakmasından korkuyorum. FW demek, bağlılık demek bence. Yeni versiyon çıktı, uyumsuzluk oldu vs..
Peki siz olsaydınız ne yapardınız? Düşünceleriniz nelerdir?
Düşünceleriniz benim için kıymetlidir...
Siz olsaydınız ne yapardınız?
4
●790
- 24-03-2016, 18:11:54
- 25-03-2016, 21:06:40Popüler framework'lerin LTS versiyonlarını kullanabilirsiniz. Symfony ve Laravel'in LTS sürümleri en az 2 yıl boyunca güncelleme almaya devam ediyor.
Onun dışında araya katmanlar katarak framework'lerden olabildiğince bağımsız hale gelebilirsiniz. Kodunuzda tamamen kendi interface'leriniz ile konuşup, framework'lerin/kütüphanelerin kodlarını adapter'ler aracılığıyla kullanabilirsiniz.
Örneğin;
Veritabanına yazma işlemini direk olarak Doctrine'le konuşarak değilde, kendi Interface'iniz ile konuşup yaparsanız, ileride Doctrine yerine Eloquent vs. de kullansanız, yazmış olduğunuz kodları değiştirmenize gerek kalmadan, Eloquent için bir adapter yazarak halledebilirsiniz.
Örnek;
Sizin kullanacağınız depolama arayüzü, nasıl depolandığı sizi veya kodunuzu ilgilendirmiyor
.
<?php namespace App\Contract; /** * Tüm depolama işlemleri bu arayüze göre yapılmalı. */ interface StorageInterface { /** * Verilen değeri depolar. * * @param array $values saklanacak olan değerler. (key -> value form'unda) * @return boolean */ public function store(array $values): bool; }Kullanıyorken, depolama detayına odaklanmıyorsunuz;
<?php namespace App\Service; use App\Contract\StorageInterface; class PostService { protected $storage; public function __construct(StorageInterface $storage) { $this->storage = $storage; } public function create(string $title, string $content): bool { return $this->storage->store(array( 'title' => $title, 'content' => $content )); } }Business logic'ini yazdığınız kod, verilerin nerede saklandığıyla ilgilenmiyor, sadece saklanacağını biliyor. Tabi bunuda yazdığınız interface(kontrat) sayesinde biliyor.
Örnek olarak bir DoctrineAdapter'i;
<?php namespace App\Adapter\Storage; use App\Contract\Storage; class DoctrineStorage implements StorageInterface { public function store(array $values): bool { // verilen değerleri doctrine kullanarak veritabanına saklar. } }Toplamak gerekirse;
<?php // bir controller vs. içinde $storage = new DoctrineStorage(); $postService = new PostService($storage); $postService->create('hello world', 'hello world');Özet olarak; Adapter'ler dışında, hiç bir 3. parti yazılımın interface'ini, object'ini vs. kullanmayarak, tamamen kendi interface'leriniz, sınıflarınız ile konuşarak, olabildiğince framework'lerden bağımsız hale gelebilirsiniz.
Edit: Kendi interface'lerinize ek olarak PSR'ın interface'lerine göre kod yazarakda, frameworkler/kütüphaneler arası rahatlıkla geçiş yapabilirsiniz. Logger, Cache, Request/Response - 09-05-2016, 13:36:57kendi yapınızı oluşturacak yeterli zamanınız yoksa , FW kullanabilirsiniz.
FW zaman olarak çok artı sağlar. Ek olarak kodlarda da tutarlılık ve devamlılık sağlar.
sizden sonra gelen, ya da size ortak olan varsa anlaması ve devam etmesi kolay olur.
Laravel veya symfony kullanabilirsiniz. ya da bu aralar radarımda olan Phalcon da olabilir. - 22-07-2016, 23:30:24Kendi yapınızı oluşturmak ile uğraşmak kişisel bir tercihtir fakat ben yapmazdım. Amerikayı tekrardan keşfetmeye gerek yok sözü buraya uygun olduğunu düşünüyorum.
Framework seçimi olarak ise Symfony, Laravel veya Codeigniter öneririm. jebias arkadaşımız detaylı bilgileri fazlası ile verdiği kanaatindeyim. Ama ille framework kullancam diyorsan bu 3 frameworkun işini göreceğini düşünüyorum.
Kolay gelsin
.