Tasarım Desenleri ve PHP Implementasyonlarıibrahimgunduz34PHP-Ist 2013 gerçekleştirilen tasarım desenleri ve php implementasyonları sunumu.
Örnek kodlar:
https://github.com/ibrahimgunduz34/design_patterns
Git commit ve push’dan bir adım ötesi...ibrahimgunduz34Geliştirme ortamınızda GIT kullanarak yaptığınız değişiklikleri commit edip uzak uca push ile göndermeyi biliyorsunuz. Ancak birlikte çaşlışırken sıklıkla conflict(çakışma) ile karşılaşıyor ve fetch, merge, rebase kavramları kafanızı mı karıştırıyor ? O zaman doğru adrestesiniz.
TOBB Yazılım Sektörü Meclisi 2016: Yazılım GeleceğimizdirMelek Bar ElmasTürkiye'de Yazılım Sektörü'nün gelişerek büyümesi hepimiz için çok önemli. Çünkü yazılım katma değeri ve ihracat şansı en yüksek kritik sektörlerden birisi. Sektörü büyütmek için yapmamız gerekenleri bu sunumda derledik. Sektöre katkı vermek istiyorsan sunumu mümkün olduğunca paylaş!
Yazilim için ortak ses ver (v1)Melek Bar ElmasTOBB Yazılım Sektörü Meclisi, 2016 yılında yazılım sektörünün pazarlama ve satış faaliyetlerine destek olma kararı aldı. Temsil ettiğimiz her ortamda sektörümüzün bu alandaki savunu ve lobi çalışmalarını yürütmekteyiz. Bu sunumu paylaşarak siz de bu çalışmaya destek olun!
ÇOKLU ORTAM TASARIMI Dersi - 6.hafta - Çoklu Ortam Uygulamalarinda Kullanici ...oğuzhan şekerKaynaktan alıcıya gönderilen mesajın alıcı tarafından kabul edilmesi ve alınan mesaj çerçevesinde alıcıda bilgi tutum veya davranış değişikliği oluşması olarak ifade edilir.
Sınıf ortamında gerçekleşen etkileşimde daha çok bireyler arasında öğretim veya öğretim dışı sosyal etkileşim ön plandayken, bilgisayar uygulamalarıyla yürütülen veya desteklenen öğrenme öğretme süreçlerinde insan – bilgisayar etkileşiminin ön planda olduğu görülmektedir.
Medikal Sektördeki Dijital GelişmelerUserspotsHastalar dijital dünyayı ne için ve ne zaman kullanıyorlar? Hastalar Hekim/Hastane bulmada nasıl bir yol izliyor? Hangi sağlık uygulamalarını tercih ediyorlar? Hastane içi kullanılan dijital araçlar ve Türkiyedeki uygulamaları sizler için topladık.
Cool marka Olma Sanatıismail DağlıCool Marka Yaratma Sanatı
Bu sunumu 2013 - 2014 gibi yapıyorduk. Marketing Türkiye'nin 2016'da çıkan habere istinaden ben de Melodi Türkili ile hazırladığımız sunumu yayınlamak istedim. Türkiye'deki araştırmaya göre seçilen markalar bu kriterlere uyuyor mu?
Cool markalar kimlerdir?
Ortak özellikleri neler?
Ne yaparlar?
Veri Kullanımı ve Programatik Reklamcılık- IABMutlu Dogus YildirimAnkara Marka Festivali Sunumu
Konu: Veri Kullanımı ve Programatik Reklamcılık
Verinin dijital reklamcılık dünyasındaki yeri, programatik reklamcılıki ve programatik reklamcılığın veriyle olan ilişkisini inceliyoruz.
ÇOKLU ORTAM TASARIMI Dersi - 5.hafta - ÇOKLU ORTAM UYGULAMALARINDA GÖRSEL TAS...oğuzhan şekerGörsel tasarım, insanın kullandığı nesneler ile yaşadığı çevreyi, fiziksel ve ruhsal gereksinimleri doğrultusunda çağın estetik ve teknik değerleri ile yeniden üretmesi ya da düzenlemesidir.
Görsel tasarım sürecinin doğrudan ilişkili olduğu bir diğer süreç görsel algıdır.
Algılar duyumlar yoluyla oluşturulur ve bir bilgi edinme sürecidir.
Görsel algılama sürecinde, algıyı oluşturması hedeflenilen içeriğin niteliği ve etkin bir mesaj sistemi ile başarılı bir ileti sisteminin oluşturulması görsel tasarımın niteliğini arttırmaktadır.
IAB Turkiye Programatik Reklamcilik Egitim SunumuMutlu Dogus YildirimIAB Türkiye'nin organize ettiği dijital reklamcılık eğitiminde programatik reklamcılık konusunu ben anlattım ve bu sunumdan faydalandım. Sunumda Accuen-Türkiye lideri Alp Ayhan da bazı kısımların anlatımında ve demo esnasında yardımcı oldu.
İç Kontrol Sistemiİlayda Üçüncü2005 yılında 5018 Sayılı Kamu Mali Yönetim ve Kontrol Kanununun 55 inci maddesine eklenerek tüm kamu kurumlarında zorunlu hale gelmiş iç kontrol uygulamalarına ilişkin; genel bilgi, standartlar ve 6 Adımda iç kontrol çatısı kurulmasına ilişkin bilgiler içermektedir.
Rails İle Ağ Uygulamaları GeliştirimimuariferVI. Linux Ve Özgür Yazılım Şenliği
Odtü/Ankara
Murat Arif ÇELİKER, 2007
http://www.ikinoktayazilim.com/wordpress
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...Hakan ERDOGANeticaret, ekip yönetimi, proje yönetimi, yazılım, altyapı, bilgi teknolojileri
Yazilim için ortak ses ver (v1)Melek Bar ElmasTOBB Yazılım Sektörü Meclisi, 2016 yılında yazılım sektörünün pazarlama ve satış faaliyetlerine destek olma kararı aldı. Temsil ettiğimiz her ortamda sektörümüzün bu alandaki savunu ve lobi çalışmalarını yürütmekteyiz. Bu sunumu paylaşarak siz de bu çalışmaya destek olun!
ÇOKLU ORTAM TASARIMI Dersi - 6.hafta - Çoklu Ortam Uygulamalarinda Kullanici ...oğuzhan şekerKaynaktan alıcıya gönderilen mesajın alıcı tarafından kabul edilmesi ve alınan mesaj çerçevesinde alıcıda bilgi tutum veya davranış değişikliği oluşması olarak ifade edilir.
Sınıf ortamında gerçekleşen etkileşimde daha çok bireyler arasında öğretim veya öğretim dışı sosyal etkileşim ön plandayken, bilgisayar uygulamalarıyla yürütülen veya desteklenen öğrenme öğretme süreçlerinde insan – bilgisayar etkileşiminin ön planda olduğu görülmektedir.
Medikal Sektördeki Dijital GelişmelerUserspotsHastalar dijital dünyayı ne için ve ne zaman kullanıyorlar? Hastalar Hekim/Hastane bulmada nasıl bir yol izliyor? Hangi sağlık uygulamalarını tercih ediyorlar? Hastane içi kullanılan dijital araçlar ve Türkiyedeki uygulamaları sizler için topladık.
Cool marka Olma Sanatıismail DağlıCool Marka Yaratma Sanatı
Bu sunumu 2013 - 2014 gibi yapıyorduk. Marketing Türkiye'nin 2016'da çıkan habere istinaden ben de Melodi Türkili ile hazırladığımız sunumu yayınlamak istedim. Türkiye'deki araştırmaya göre seçilen markalar bu kriterlere uyuyor mu?
Cool markalar kimlerdir?
Ortak özellikleri neler?
Ne yaparlar?
Veri Kullanımı ve Programatik Reklamcılık- IABMutlu Dogus YildirimAnkara Marka Festivali Sunumu
Konu: Veri Kullanımı ve Programatik Reklamcılık
Verinin dijital reklamcılık dünyasındaki yeri, programatik reklamcılıki ve programatik reklamcılığın veriyle olan ilişkisini inceliyoruz.
ÇOKLU ORTAM TASARIMI Dersi - 5.hafta - ÇOKLU ORTAM UYGULAMALARINDA GÖRSEL TAS...oğuzhan şekerGörsel tasarım, insanın kullandığı nesneler ile yaşadığı çevreyi, fiziksel ve ruhsal gereksinimleri doğrultusunda çağın estetik ve teknik değerleri ile yeniden üretmesi ya da düzenlemesidir.
Görsel tasarım sürecinin doğrudan ilişkili olduğu bir diğer süreç görsel algıdır.
Algılar duyumlar yoluyla oluşturulur ve bir bilgi edinme sürecidir.
Görsel algılama sürecinde, algıyı oluşturması hedeflenilen içeriğin niteliği ve etkin bir mesaj sistemi ile başarılı bir ileti sisteminin oluşturulması görsel tasarımın niteliğini arttırmaktadır.
IAB Turkiye Programatik Reklamcilik Egitim SunumuMutlu Dogus YildirimIAB Türkiye'nin organize ettiği dijital reklamcılık eğitiminde programatik reklamcılık konusunu ben anlattım ve bu sunumdan faydalandım. Sunumda Accuen-Türkiye lideri Alp Ayhan da bazı kısımların anlatımında ve demo esnasında yardımcı oldu.
İç Kontrol Sistemiİlayda Üçüncü2005 yılında 5018 Sayılı Kamu Mali Yönetim ve Kontrol Kanununun 55 inci maddesine eklenerek tüm kamu kurumlarında zorunlu hale gelmiş iç kontrol uygulamalarına ilişkin; genel bilgi, standartlar ve 6 Adımda iç kontrol çatısı kurulmasına ilişkin bilgiler içermektedir.
Rails İle Ağ Uygulamaları GeliştirimimuariferVI. Linux Ve Özgür Yazılım Şenliği
Odtü/Ankara
Murat Arif ÇELİKER, 2007
http://www.ikinoktayazilim.com/wordpress
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...Hakan ERDOGANeticaret, ekip yönetimi, proje yönetimi, yazılım, altyapı, bilgi teknolojileri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriLemi Orhan ErginBu sunum, 23 Mart 2013 tarihinde Dinamikler 2013 Proje Yönetim Kongresi Agile Panelinde yaptığım konuşmanın yansılarından oluşuyor.
http://www.dinamikler.org/sunum5.asp
Konuşmamın ana fikri şöyle özetlenebilir:
Her yıl geliştirilen yazılım projelerinin yarısı çöpe gidiyor. Birçok şirket, uzayan, bitmeyen, kalitesiz projeler nedeniyle yüklü miktarda para kaybediyor. Her projede projenin kapsamı, donanımsal ve yazılımsal gereksinimler, projenin kaç kişi ile geliştirileceği, projenin kaç adam gün süreceği ve ne kadar bütçe ayrılacağı gibi sorular için cevap aranırken çoğu kez bir şey gözden kaçıyor: Yazılımın doğası.
Yazılımın doğası gereği kaynaklar kısıtlı ve gereksinimler belirsizdir. Belirsizlik ve kısıtlı kaynaklarla başadebilmenin tek yolu oyunu onun kurallarıyla oynamaktır. Değişken gereksinimleri kısıtlı kaynaklarla belirlenen süre zarfında bitirebilmek, yani daha azla daha çok şey başarmak için, çevik olmak, kaliteli yazılım geliştirmek, belirsizliğe değişimle anında cevap vermek gerekir.
Yazılım geliştirmek, özellikle de takım halinde yazılım geliştirmek belli bir disipline sahip olmayı gerektirir. Hızla değişen teknolojilere, belirsiz gereksinimlere, projelerin türlü ihtiyaçlarına ayak uydururken, kalıcı, dayanıklı, esnek ve kaliteli yazılım geliştirmek için elinizde size yol gösterecek tek şey yazılım ilkeleridir. Yazılım ilkeleri sizin ve takımınızın kültürdür, disiplinidir.
Çevik yazılım geliştirme uygulamaları tam da bu noktada sahneye çıkar. Bu uygulamalar, projelerinizin başarıya ulaşabilmesi adına gereken yazılım kültürünün yapıtaşlarını oluşturur. Bu oturumda, başarılı projelerde yazılım kültürüne şekil veren çevik yazılım geliştirme uygulamalarından ve etkilerinden bahsedeceğim.
Ports and Adapters: Separating concerns in your architectureMehmet KORKMAZ9th March, 2019 PHPKonf İzmir presentation about Ports and Adapters aka Hexagonal Architecture.
E-ticarette Yazılım ve AltyapıMurat KaderE-ticarette Yazılım ve Altyapı
Startup Heroes, Developers
We Made IT Possible
Software and Hardware Help Desk Saving %40 Time for IT teams
Hazır Yazılım Deri ceket gibidir, hep birşeylerin ekliğini hisedersin.
Before going down Proactive Monitoring
‘Mükemmel iyinin düşmanıdır’, Voltaire
‘Engineering is nothing but optimization’
Yazılım, yaşayan bir organizmadır... İhmale gelmez.
In IT Complete Solution means, Agile Swat Teams
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013Hüseyin MertBüyük Kamu Projelerinde PHP Kullanımı hakkında bilgiler verdiğim; e-Devlet Kapısı ve Eğitim Bilişim Ağı Yazılım mimarisi hakkında detaylı bilgiler verdiğim sunumum.
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...OWASP TurkiyeOWASP-TR Uygulama Güvenliği Günü 2016
Muhammet Dilmaç - Ruby on Rails Web Framework ve Güvenlik
Web developmentSeydi AlkanStaj okulu öğrencilerine üniversite dönemi, yazılım sektörü ve Uçtan uca web uygulaması geliştirme bölüm başlıklarıyla sunmuş olduğum sunum. Üniversite öğrencilerine yönelik bir düzeyde hazırlanmıştır.
8. Esnemezlik (Rigidity)
● Kaynak kodunda değişikliğe
karşı artan zorlaşma eğilimi
● Tek bir değişikliğin bile
başka pek çok modülde
değişikliğe neden olması
● Geliştirme süresinin gitgide
artması
10. Kırılganlık (Fragility)
● En küçük değişiklikle bile
uygulamada pek çok
noktada kırılabilme eğiliminin
artması
● Yapılan değişiklikle
doğrudan ilgisi olmayan
farklı noktada meydana
gelen kırılmalar
● Yapılan her hata giderme
işlemi ile birlikte olası
beklenmedik hataların
oluşması ihtimalinin artması
12. Taşınamamazlık (Immobility)
● Modüller arası yüksek
bağımlılık
● Taşınamayan, mevcut veya
başka bir proje tarafından
kullanılamayan kod blokları
● Gereksiz kod tekrarları
14. Akışkanlık Direnci (Viscosity)
● Tasarımı koruma yoluna
gitmek, gelişi güzel iş
yapmaktan daha zor hale
geldiğinde akışkanlık direnci
yüksektir.
● Geliştirme ortamının yavaş
yada elverişsiz olması
geliştiricilerin gelişi güzel iş
yapma eğilimini arttırır.
16. Gereksiz Tekrar (Needles Repetition)
● Tasarımın, tek soyutlamanın
içinde tekrarlanan yapılar
içermesi
● Geliştiricinin kopyala/yapıştır
kavramını su istimal etmesi
● Tekrarlanan kodla
anlaşılmaz ve bakımı zor
hale gelen sistem
18. Gereksiz Karmaşa (Needles Complexity)
● Proje, anlaşılması güç ve
hiçbir zaman kullanılmayan
yapılarla doludur.
● Kullanışsız kod blokları
karmaşa hissi uyandırır.
19. “Any fool can write code that a computer can understand.
Good programmers can write code that humans can
understand.”
Martin Fowler
21. SOLID Prensipleri
Nedir ?
Robert Martin sunumu ile ortaya
çıkan bağımlılık yönetimi
biçiminin baş harfleridir.
Ne Sağlar ?
● Gevşek bağlara sahip
● Yeniden Kullanılabilir
● Kolaylıkla test edilebilir
● Gerektiğinde rahatlıkla
bakım yapılabilir
● Yüksek uyumluğa sahip
24. class UserManager
{
public function register($email, $fullname, $password)
{
//validasyon
if( !$email || !$this->isEmail($email)) {,
throw new ValidationError('Email must be valid email address.');
}
if(!$fullname || len($fullname) < 20 || len(split(' ', $email)) < 2) {
throw new ValidationError('Fullname must be valid name.');
}
if(len($password) < 6 || len($password) > 30) {
throw new ValidationError('Password length must be greater than six character and less than thirty character.');
}
//veritabaninda kullanici kaydi olusturuluyor
try {
$user = new User();
$user->setName($fullname);
$user->setEmail($email);
$user->generatePassword($password);
$user->persist();
$user->flush();
$mailer = new Mailer();
$mailer->send($user->getEmail(), 'Registration is completed successfuly.', 'bla..bla...'
);
} catch(DatabaseError $error) {
Logger::exception($error);
throw new SystemError('User registration is failed.');
}
}
}
25. class UserManager
{
private function createUser($email, $fullname, password)
{
$user = new User();
$user->setName($fullname);
$user->setEmail($email);
$user->generatePassword($password);
$user->persist();
$user->flush();
return $user;
}
public function register($email, $fullname, $password)
{
//validasyon
$validator = new UserRegistrationValidator($email, $fullname, $password);
$validator->validate();
//veritabaninda kullanici kaydi olusturuluyor
try {
$user = $this->createUser($email, $fullname, $password);
$eventDispatcher->dispatch('user.registred', new UserRegisterEvent($user));
return true;
} catch(DatabaseError $exc) {
Logger::exception($exc);
throw new SystemError('User registration is failed.');
}
}
}
31. Liskov Substitution
Alt sınıflardan oluşturulan nesneler, üst
sınıflardan oluşturulan nesnelerle yer
değiştirdiklerinde aynı davranışı sergilemek
zorundadırlar.
32. class Employee
{
protected $baseSalary = 2000;
public function getSalary()
{
throw new EmployeException('This employee salary is not defined yet.');
}
}
class Engineer extends Employee
{
public function getSalary()
{
return $this->baseSalary * 3
}
}
class Manager extends Employee
{
public function getSalary()
{
return $this->baseSalary * 5;
}
}
class Intern extends Employee {}
33. class SalaryCalculator
{
public function getTotalSalary()
{
$total = 0;
foreach(getEmployeers() as $employee) {
if($employee instanceof Intern) {
$total += 0;
} else {
$total += $employee->getSalary();
}
}
return $total;
}
}
34. class SalaryCalculator
{
public function getTotalSalary()
{
$total = 0;
foreach(getEmployeers() as $employee) {
$total += $employee->getSalary();
}
return $total;
}
}
36. Interface Segregation
Birbiriyle ilişkili olmayan pek çok metodu ihtiva
eden arayüzler yerine birbiriyle ilişkili
metodlardan oluşan çok sayıda arayüz
kullanılmalı.
37. interface PosInterface
{
public function preAuthorization(PreAuthorizationRequest $request);
public function postAuthorization(PostAuthorizationRequest $request);
public function sale(SaleRequest $request);
public function refund(RefundRequest $request);
public function cancel(CancelRequest $request);
public function processProviderResponse(ProviderResponse $providerResponse);
public function finalize(Finalize3dRequest $request);
}
class SynchPayA implements PosInterface
{
/...
}
class SynchPayB implements PosInterface
{
/...
}
38. interface PosInterface
{
public function sale(SaleRequest $request);
public function refund(RefundRequest $request);
public function cancel(CancelRequest $request);
}
interface ThreeDSecureAware
{
public function processProviderResponse(ProviderResponse $providerResponse);
public function finalize(Finalize3dRequest $request);
}
interface PreAuthorizationWare
{
public function preAuthorization(PreAuthorizationRequest $request);
public function postAuthorization(PostAuthorizationRequest $request);
}
class SynchPayA implements PosInterface, PreAuthorizationWare
{
/...
}
class SynchPayB implements PosInterface, PreAuthorizationWare, ThreeDSecureAware
{
/...
}