Yazılım geliştirmenin (diğerleri arasında) kendinize sürekli soru sorma süreci olduğunu fark etmeye başlıyorum. Kodun kalitesi, endişelerin ayrılması, bağımlılıkların en aza indirilmesi, ...
Ama asıl soru şu: bir akıl hastanesine gitmeden ne kadar ileri gidebilirsiniz?
Yeni bir işe başvuruyorum. Dün, programlama yeteneklerimi test etmek isteyen gelecekteki olası bir işverenin yanındaydım. Alıştırmalardan biri şuydu: bu kodun ne yaptığını açıklamak. Geliştirdikleri uygulamanın (vb.net winforms) bazı kodlarından geçti (bir hastane için bir idari uygulama). Bu bana bir şeylere nasıl yaklaştıklarını görme fırsatı verdi ve oldukça hayal kırıklığı yarattı.
Bazı örnekler:
- Bir yerde gördüm: [buraya altprogramın adını girin] -> Vuruldum: VB6'dan bir şey değil mi?
- Onlar ado.net kullanarak ayrı bir veri katmanı var, ama incelemek zorunda bir yöntem çağıran katman için bir veri kümesi döndürür. Bu nedenle ayrı veri katmanı olsun veya olmasın, uygulama ado.net'e bağlıdır (başka bir veri erişim yaklaşımına asla geçmezlerse hiçbir zaman sorun olmayabilir).
- Bu veri seti olduğu gibi okunur, bu yüzden hala veri merkezli bir yaklaşımdır (elbette, "Hasta" veya "LabAnalysisRequest" gibi sınıflara ne kadar mantık / davranış koyabileceğiniz tartışılabilir.
- Ben de dize birleştirme ile bir sql sorgusu inşaat gördük inanıyorum.
- Saklı yordamlar kullanıyorlar (benim için mantığın dağılması anlamına geliyor)
- görünümlerden / kontrolörlerden bahsedilmiyor: hepsi form odaklı
- Gördüğüm en çirkin şey:
TestEnvironment.IsTesting ise someVar = [bazı sabit kodlanmış değerler] Başka someVar = [dinamik olarak alınan bazı değerler] eğer biterse [burada işlevin geri kalanı]
Okulda öğrendiklerimden çok farklı: (kalıcılık agnostik) etki alanı katmanı, kalıcılık katmanı, sunum katmanı, birim testi, ...
Bu yüzden sorumu yeniden ifade ediyorum: kişi ne kadar temel veya dogmatik olmalı? Bir programcı ilkelerine ne ölçüde uymalı veya işi yapan bir kod yazmalı mı?