Sorgulayan insanların yaptıkları soruların hepsi gerçekten yavaş olup olmamanız aptalca. Kaliteden ödün vermeden daha hızlı bir programcı olmak, ne kadar yavaş veya hızlı olursanız olun, her zaman iyi bir hedeftir. Bu benim bir numaralı programcı olarak 1 numaralı hedefimdir ve asla yapılmayacağım. Her zaman kaliteden ödün vermeden daha hızlı olmaya çalışıyorum, buna takıntılıyım. İşte benim için şu ana kadar yararlılık derecesinde, sonunda bazı deneysel fikirlerle çalıştığım şey:
1) Öğrenmeyi asla bırakmayın: Bilgisayarları genel olarak programlama ve kullanma hakkında her şeyi öğrenin. Zayıf olduğunuz alanları bulun ve öğrenin. İşinizle ve C # ile tamamen ilgisiz görünse bile, onu ararsanız, bunu yaptığınız işe uygulamanın yollarını bulacağınızı garanti ederim. Öğrenme de tecrübe ile ilgilidir, bu yüzden sadece bir şeyler okumayın, deneyin ve becerilerinizi geliştirin. Windows kullanmaya alışkınsanız, Unix'i veya tersini deneyin. Normalde IDE kullanmak isterseniz komut satırı araçlarını ve metin editörlerini deneyin veya bunun tersi de geçerlidir. Daha önce hiç duymadığınız veya çok fazla şey bilmediğiniz bir araç veya teknoloji duyuyorsanız, ilerlemenin baştan çıkarmasına izin vermeyin. Yukarı bak! Kutunun dışında düşünmekten ve başkalarının pratik olmadığını söyleyen deneysel yeni teknolojileri öğrenmekten korkmayın;
2) Projeleri bölme: Projelerinizi mini projelere bölmeye çalışın. Her gün veya en fazla birkaç günde bir yeni sürüm yayınlamaya çalışın. Kendinize "Salıverebileceğim asgari işlev miktarı nedir ve yine de kullanıcı için yararlı olan bir şey serbest bırakın" diye sorun. Bu yaparak öğreneceksiniz bir beceridir. Yöneticilerinizi bunu yapmanıza izin vermeye ikna etmeniz gerekebilir, ancak genellikle sonuçlardan oldukça hızlı bir şekilde memnun kalacaklardır. Bunu yaparak, özelliğiniz için gerekli olduğunu düşündüğünüz şeylerin aslında daha sonra geliştirilebilecek ek özellikler olduğunu fark etmeye başlayacaksınız. Bu, sizin ve yöneticilerinizin üzerinde çalıştığınızla ilgili tüm özelliklerin yerine yalnızca en önemli özelliklere öncelik vermenizi sağlar. Bu, zihninizi açık ve odaklanmış tutarak daha hızlı düşünmenizi sağlar. Buna karşılık yasal olarak daha hızlı programlanırsınız. Yöneticileriniz veya en azından yöneticinizin yöneticileri, şimdi programladığınızı, olduğundan çok daha hızlı bir şekilde algılayacağınızı, muhtemelen daha fazla sürüm çıkardığınıza inanıyor olabilir. Bunun bir diğer büyük yararı, sürümlerin tamamlanmasının ne kadar süreceğini tahmin etmekte çok daha iyi olacağınız ve yöneticileriniz bunun için sizi seveceğidir. Zaten çok sayıda otomatik sınama yaptığınız için, kararlı sürümleri sık sık yapmakta sorun yaşamazsınız. Yine de, otomatik yapı sisteminizi güçlendirmeniz gerekebilir. Martin Fowler serisinde Sürekli Teslimat kitabını okumanı şiddetle tavsiye ederim. Zor bir okuma ve son derece tekrarlayan, ancak yine de çok yararlı çünkü. Ayrıca yöneticilerin şu anda olduğundan çok daha hızlı bir şekilde programlama yaptığınızı algılaması da muhtemeldir, çünkü daha fazla sürüm çıkarırsınız. Bunun bir diğer büyük yararı, sürümlerin tamamlanmasının ne kadar süreceğini tahmin etmekte çok daha iyi olacağınız ve yöneticileriniz bunun için sizi seveceğidir. Zaten çok sayıda otomatik sınama yaptığınız için, kararlı sürümleri sık sık yapmakta sorun yaşamazsınız. Yine de, otomatik yapı sisteminizi güçlendirmeniz gerekebilir. Martin Fowler serisinde Sürekli Teslimat kitabını okumanı şiddetle tavsiye ederim. Zor bir okuma ve son derece tekrarlayan, ancak yine de çok yararlı çünkü. Ayrıca yöneticilerin şu anda olduğundan çok daha hızlı bir şekilde programlama yaptığınızı algılaması da muhtemeldir, çünkü daha fazla sürüm çıkarırsınız. Bunun bir diğer büyük yararı, sürümlerin tamamlanmasının ne kadar süreceğini tahmin etmekte çok daha iyi olacağınız ve yöneticileriniz bunun için sizi seveceğidir. Zaten çok sayıda otomatik sınama yaptığınız için, kararlı sürümleri sık sık yapmakta sorun yaşamazsınız. Yine de, otomatik yapı sisteminizi güçlendirmeniz gerekebilir. Martin Fowler serisinde Sürekli Teslimat kitabını okumanı şiddetle tavsiye ederim. Zor bir okuma ve son derece tekrarlayan, ancak yine de çok yararlı çünkü. ve yöneticileriniz bunun için sizi sevecek. Zaten çok sayıda otomatik sınama yaptığınız için, kararlı sürümleri sık sık yapmakta sorun yaşamazsınız. Yine de, otomatik yapı sisteminizi güçlendirmeniz gerekebilir. Martin Fowler serisinde Sürekli Teslimat kitabını okumanı şiddetle tavsiye ederim. Zor bir okuma ve son derece tekrarlayan, ancak yine de çok yararlı çünkü. ve yöneticileriniz bunun için sizi sevecek. Zaten çok sayıda otomatik sınama yaptığınız için, kararlı sürümleri sık sık yapmakta sorun yaşamazsınız. Yine de, otomatik yapı sisteminizi güçlendirmeniz gerekebilir. Martin Fowler serisinde Sürekli Teslimat kitabını okumanı şiddetle tavsiye ederim. Zor bir okuma ve son derece tekrarlayan, ancak yine de çok yararlı çünkü.
3) Pomodoro tekniğini kullanın ve sizin için işe yaramayanı uyarlayın / değiştirin. Bu listedeki 2 numara ile birleştirirseniz, BÜYÜK verimlilik artışı elde edersiniz.
4) Vim'i öğrenin. Bu komutları Visual Studio'da ViEmu ile veya Eclipse içinden bir eklenti ile veya Emacs içinden kullansanız bile, verimlilik kazanırsınız. Vim'i öğrenmenin en iyi yolu, onu kullanmaya başlamak ve ustalaşana kadar kendinizi asla (devre dışı bırakma / eski aletlerine geri dönme) için zorlamaktır. İlk başta acı vericidir, ancak asla geri dönmek istemeyeceksiniz, hatta onsuz çalışmak zorunda kaldığınızda bile cüret edebilirsiniz. Bazıları bunun hızınızı fazla artırmayacağını söylüyor. Ancak daha hızlı, özellikle de kodu okurken ve değiştirirken BİZ NE YAPARIZDIR ve bu vesileyle kendimi çok fazla zaman kazanırken buldum.
5) Bu sonuncusu mutlaka tavsiye edilmez, çünkü iyi bir fikir olduğundan emin değilim ve aslında verimliliğinizi düşürebilir, ancak yine de orada olacağım. Daha fazla kabul testi ve daha az birim testi yapmayı deneyebilir veya belki de en azından bazı kabul testleri yaptığınızdan emin olabilirsiniz. SpecFlow ile başarılı oldum, ancak orada daha iyi bir şey olduğundan şüpheleniyorum. Özellikleri yazmak bile oldukça teknik olabilir; bu nedenle, önce yöneticinize / müşterinize, önemli ölçüde değiştireceğiniz kaba bir taslak sürümü yazmanız veya her şeyi kendiniz yazıp sadece okuyup tamamlamanız gerekebilir. Bu, bu listedeki 2 numaralı size yardımcı olacaktır. Ayrıca kabul testleri daha pratik olabilir ve birim testlerinden daha az kod gerektirir. Bu, onların yerini değiştirdiklerini, farklı şeylerin farklı araçlarını söylemek değildir.
6) Bu daha da deneysel ve tartışmalı. Aslında bunu kendim yapmadım, bu yüzden tam olarak tavsiye edemem. JetBrains'ten Meta Programlama Sistemini öğrenin ve kullanın. İstediğiniz yazılımı kendileri oluşturmak için yöneticinizin / müşterinizin kullandığı araçları oluşturmak için kullanın. Davranışınızı çok basit ve anlaşılır bir şekilde belirtmek için yöneticinizin / müşterinizin kullandığı araçları yapmak için kullanabilirseniz, birim ve kabul testleri yapmayı durdurabilirsiniz. Buradaki fikir programcıdan kurtulmak değildir. Programcıların, müşteri / yönetici tarafından kullanılan araçlara (insanlar değil, araçlar) istenen bazı işlevleri kolayca oluşturamadıkları durumlarda yeni özellikler eklemesi gerekecektir. MPS ya da buna benzer diğer araçların geleceğin yolu olduğuna inanıyorum.