Programcılıkta gelmek istediğim nokta

by Necat Bolpaça 8. July 2011 20:52

Aşama 1 : Sorunları oluşmadan önce çözmek.

* Sorunları oluşmadan önce öngörüp çözemesem de belki daha önceden karşılaştığım sorunların tekrar etmesini önleyebilirim. Bu tekrar etmeyi önleme için, karşılaştığım sorunların objektif bir şekilde gözlenmesi ve kaydedilmesi gerekiyor ki, sonradan onların üzerinde benim veya başka kişilerin hangi hataları yaptığını veya ortada bir kişinin hata yapması durumu yoksa, nereden sorunun kaynaklandığını görebilelim.

Adım 1 : Ürün yaklaşımı

Ortaya koyduğumuz her iş için bu iş A firması için yapılan bir üründür, bakış açısıyla yaklaşmak öyle kabul etmek ve öyle davranmak.

Adım 2 : Yalancı kod (pseduo) yazmak.

Psed. sistem hakkındaki tüm gereksinimlerimizi erken görmek ve kodlama sırasında hataları, gereksiz uğraşları önlemek açısından faydalıdır.

Adım 3 : Readme (Okubeni) odaklı yazılım geliştirmek.

Önce okubeni.txt veya readme.txt dosyasını yazarak, benden sonra gelecek, işi kopyalayıp değiştirebilecek yazılımcının işini kolaylaştıracağım.

Detaylı bilgi : http://tom.preston-werner.com/2010/08/23/readme-driven-development.html

Adım 4 : Versiyon kontrol sistemi

Merkezi bir sunucu gerektirmeyen (git) versiyon kontrol sistemiyle, işlerin yedeklerini, hangi tarihte ne değişiklik yaptığım belli olacak şekilde tutup, öyle yedekleyeceğim.

Adım 4 Sorun 1 : Versiyon kontrol sistemi kullanmayan kişilerden gelen farklı çalışmalar (flash, resim, logo, döküman vb.) ve kodları nasıl versiyon kontrol sistemine entegre edebilirim?

Bu listede olmayan ama gerçekleşmesi gerekenler:

1. TDD : Test driven development, kodu yazmadan önce testini yazmak ve o testten geçecek kodu yazmak.

asp.net mvp, asp.net mvc, php unit

2. Loglar : Yazdığımız program, sadece hata mesajı verdiği zaman bizim haberimiz olmamalı. Nasıl çalıştığına dair düzenli rapor tutmalı. Hata durumları loglanmalı. Başarılı çalışma durumu ise oran olarak tutulmalı.

3. Ping : Yayına aldığımız sitelerin yayındayken sorun ile karşılaşmasını müşteriden aldığımız telefon ile öğrenmemeliyiz. Başka bir güvenilir sunucu, o sitenin "kalp atışlarını" sürekli takip etmeli . Bu konuda kendimiz basit bir yazılım yapabiliriz veya ücretli destek alabiliriz pingdom.com gibi bir yerden.

4. Otomatik yedekleme : Yedekleme işlemini otomatik olarak betikler yardımıyla yapmak ve tarihine göre klasörler içinde tutmak gerekiyor. Belli aralıklarla elle kontrol edebiliriz.

Tags:

Türkçe | Vizyon

Todo.txt CLI - Yeni bir todolist yazılımı, yeni bir heyecan...

by Necat Bolpaça 9. September 2010 18:25

13 Kasım 2010 düzenlemesi : Bu yazılımı ve Tomboy Notes'u kullanmayı bıraktım. Bunların yerine artık, "todolist" kullanıyorum. Todolist için ayrıca bir yazı yazacağım.

Todolist yazılımı için : http://www.codeproject.com/KB/applications/todolist2.aspx

-------------------------------------------------------------------------------

LifeHacker.com sitesinin kurucusu Gina Trapani'nin hazırlamış olduğu "Todolist CLI" isimli programdan FriendFeed üzerinde Yunus Emre Yılmaz sayesinde haberim oldu.

Feed : http://friendfeed.com/yunusemreyilmaz/a63f70a2/todo-txt-command-line-interface-task-tracking

Doğrudan bağlantı : http://ginatrapani.github.com/todo.txt-cli/

Bu yazılım, Windows üzerinde doğrudan doğruya çalışmıyor, bir bash betiği olduğu için öncelikle Cygwin edinip, kurmalısınız.

http://cygwin.com

Sonra Cygwin in oluşturduğu /bin klasörüne todo.sh yi atıp, başlangıç için alias tanımlamalısınız.

alias t=todo.sh

Benim todolist programlarına olan zaafım nedeniyle şu an kendisini hem iş yerinde hem de evde denemekteyim. Kullanımı gayet esnek olabiliyor. (Daha çok programcılara hitap etse de) Videosunu seyredip karar vermenizi öneririm.

Tags:

Türkçe | Vizyon

İnternet sitelerine beton dökmeyin

by Necat Bolpaça 10. August 2010 18:09

İlk önce, "beton dökmek" ile ne kastettiğimi kısaca açıklayayım. Bazen geçmek istediğimiz yolda belediye çalışmalar yapar. Yol asfalt ise, ilk önce asfalt kırılır, kablo veya su borularının olduğu yere kadar kazılır. Sonra kablolarda / su borularında yapılmak istenen değişiklik yapılarak kazılan yer kapatılır, asfalt yeniden dökülür. Bazen asfaltın bütünlüğü bozulmasın diye tekrar asfalt döküldüğü dahi olur.

Bu işlemleri ara sokaklarda kolaylaştırmak için, sökülüp takılabilen taşlar vardır. Kazı öncesi bu taşlar sökülür, kazı bitince de yerine takılır.

Yapılmış ve bitirilmiş bir internet sitesinde müşteriden revize isteği geldiğinde;

  1. Müşteri bu değişikliği kendisi yapabiliyor mu?
  2. Eğer müşteri bu değişikliği kendisi yapamıyor ise, değişikliği yapmak için sizin faydalanabileceğiniz bir otomatik üretici / panel vs. var mı?
  3. Bir panel veya otomatik olarak dosya değişikliklerini takip eden bir üreticiniz de yok ise, kod içinde merkezi bir noktadan değişiklik yaparak bu işi halledebiliyor musunuz?
  4. Değiştirmek istediğiniz yerde metin değişikliği yapmanız yetiyor mu?
  5. Flash veya Silverlight kullanılmış bir bölüm varsa bu değişiklikleri herhangi bir .xml dosyasından güncellenebiliyor mu?

Bu sorularda en iyi ihtimal ilk soruya "Evet" dediğiniz ve diğer soruları gereksiz bıraktığınız durumdur. Bir internet sitesi "fire-n-forget" (ateş et ve unut) prensibini takip etmelidir, müşteriye teslim ettikten sonra ikide bir siteyi açıp, değişiklik için kod / resim / flash eklemesi yapmamalısınız. Bu sizin artıp giden projelerinizde bir zaman kaybı ve şirketiniz için boşuna nitelikli personel iş gücü kaybı oluşturacaktır.

  •  İnternet siteleri için mümkün olduğu kadar "web safe font" kullanın, özel font istekleriniz varsa bu fontların lisans durumuna dikkat ediniz.
  • Fontlar için esnekliği azaltan sifr-cufon gibi çözümlere, mecbur kalmadıkça yönelmeyiniz.
  • Yine de yazıları resim olarak yazmak yerine gerekiyorsa cufon, sifr gibi yöntemleri kullanınız.
  • Yazıları resim olarak yazmayınız.
  • Animasyonlarda gerekmedikçe flash kullanmayınız. Gerekmesi durumu, yapmak istediğiniz animasyonun, javascript kütüphaneleriyle yapılamaması durumudur.
  • Eğer flash veya silverlight gibi kendi özel editörüyle düzenlenen bir bileşen kullanıyorsanız, bu bileşen esnek bir şekilde değiştirilebiliyor olmalıdır. Örneğin XML den verisini çeken bir flash banner gibi.
  • Müşterinin çok az değişiklik isteyeceği yerleri dahi sitenin paneline bağlamaya çalışınız. Daha sonradan projeyi açıp, ufacık bir ürün düzenlemesinde veya duyuru eklemekte kod değişikliği yapmak size zor gelebilir, başka bir projenin değerli zamanından çalabilir.

Tags:

Kişisel | Türkçe | Vizyon

Çatallandırma (ikisi farklı şeyler)

by Necat Bolpaça 11. October 2009 18:56

Elimde birbirinden farklı iki kavram olduğunu varsayıyorum.

İkinci kavramı birincisinden türettiğim zaman, ikisi aynı köke sahipse çeşitliliği arttırmış oluyorum.

Bu kavramları birbirinden tam olarak ayırdığım zaman, ikisinin farkını vurgulamış olmaz mıyım?

Bu konu şu anda herkesin görebileceği bir şekilde ancak taslak olarak kalsın. Yorumları yazıyı tamamladıktan sonra aktif hale getireceğim. Çünkü şu haliyle somut bir örnek içermiyor.

Bu "çatallandırma" sözünü ben uydurdum. Yerleşik bir karşılığı varsa, felsefede iyi bilinen bir karşılığı varsa iletişim bölümünden bildirecek arkadaşa şimdiden teşekkür ederim.

Kavramı ilk uygulayacağım alan, fikirlerimin, yazılarımın organizasyonunda birden fazla hedef belirlediğim içeriklerde, aynı temele sahip içeriğin nasıl farklı alanlarda farklı özelliklerle yayabileceğimi araştırmak olacak. Daha önce uygulanmış fikirleri incelerken, aynı köke ve düşünce özüne sahip birden fazla düşüncenin (partiler, mezhepler, örgütler) nerelerde ayrıldığını inceleyeceğim. Ancak bu incelemelerim içinde mümkün olduğu kadar tarafsız kalacağım. ("Mümkün olduğu kadar tarafsız" nasıl olunuyorsa)

 

Tags: ,

Kişisel | Türkçe | Vizyon

Dürtmeden gitmeyen insan modeli = Ben

by Necat Bolpaça 1. April 2009 22:39

Bu yazının bir benzerini çok kısıtlı sayıda insanın erişimi olan bir yerde de yazmıştım. Ancak kopyala&yapıştır yok, düşüncelerim değişmediğinden aynı şeyleri yeniden yazıyorum haliyle...

Hayatımda iki tip insanla karşılaşıyorum veya iki tip insandan biri oluyorum.

Birinci tip, bir şeyi "yapacağım" dediği zaman yapan insanlar. Ama zamanında ve kimsenin ona görevini hatırlatmadan yapan insanlar. Sorumluluğunun farkında olanlar. Yerine getirmediği sözlerin başkalarını ne kadar zor durumda bırakacağının bilincinde olanlar. Bu kişileri seviyorum. Böyle adamlar(veya kadınlar) ile çalışmak benim için onurdur.

İkinci tip, bir şeyi "yapacağım" dediği halde sorumlu olduğu kişiyi sürüncemede bırakan, acaba yaptı mı yapmadı mı oldu mu olmadı mı diye ıstırap çektiren insanlar. Sorumluluğunun farkında olmayanlar. Onların sorumsuzluğu yüzünden diğer insanlar hep sıkıntı çektiler. Çekeceklerdir de.

Bu yazıda çizgiyi böylece ortadan çektiğime göre, birinci tip insanların başka iyi yönlerinden de bahsedeyim. İnisiyatif alırlar. Evet, sorumluluklarının bilincinde oldukları için, "acaba ne yapabilirim" diye sürekli uğraşırlar. Sizin onlara ne yapacağını söylemeniz gerekmez.

Burada bir şeyi itiraf etmek için yazıyorum. Ben gitgide ikinci tip insanın hareketlerine benzer hareketler yapmaya başlıyorum. Sorumsuz, inisiyatif almayan, aynı halde bıraksan bir elli sene daha duracak bir "insan müsveddesi" halini alıyorum. Umarım, bu durumdan kurtuluşum mümkün olduğu kadar kısa olur.

Not : Bu yazı 1 Nisan şakası değildir.

Not.Not : Sadece siyah veya beyaz yok. Gri tonlar da var elbette, bir insan illa #000000 veya #ffffff olamaz. Çeşitli konularda değişik tepkiler verir farklı önem dereceleri atfederler konuya.

Tags:

Kişisel | Türkçe | Vizyon

Month List

Visitors

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in  anyway.

--

Bu sitede yazılı olanlar kendi kişisel görüşlerimdir işverenlerimi ve benimle birlikte çalışanları temsil etmemektedir.