Geliş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 Elmas
Tü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ş!
Geliş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 Elmas
Tü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ş!
TOBB 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!
Kaynaktan 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.
Hastalar 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 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?
Ankara 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.
Gö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 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.
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.
TOBB 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!
Kaynaktan 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.
Hastalar 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 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?
Ankara 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.
Gö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 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.
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.
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
{
/...
}