Mühendislik

Yapay zeka ile koddan diyagrama ve diyagramdan koda

En kalıcı diyagram iki biçimi olandır: temiz incelenen bir metin sürümü ve insanların gerçekten açtığı bir görsel sürüm. Koddan diyagrama ve geri nasıl geçeceğin ve bir diyagramı çürümekten koruyanın neden bu gidiş-dönüş olduğu burada.

Diyagramlar sıkıcı bir nedenle ölür: tek bir biçimleri vardır ve o biçim ihtiyacının en az yarısı için yanlış olandır. Bir çizim okur için harikadır, bir pull request'te ise işe yaramaz. Bir blok diyagram kodu harika incelenir ama bir paydaşa hiçbir şey anlatmaz. Böylece ekipler birini seçer ve diyagram geride kalıp herkes ona güvenmeyi bırakana kadar diğer ihtiyaç karşılanmadan kalır.

Çözüm seçmemek. Çözüm iki biçimi de tutmak ve aralarında serbestçe geçiş yapmak. Görmek istediğinde kod diyagrama dönüşür; incelemek ya da saklamak istediğinde diyagram koda dönüşür. Yapay zeka iki yöndeki yolculuğu da kolaylaştırır ve diyagramı kalıcı kılan da bu gidiş-dönüştür.

Birinci yön: koddan diyagram oluşturma

Yapıyı anlatan bir metin zaten elinde: Mermaid, D2 ya da bir Compose dosyası veya SQL şeması gibi bir çıktı. Onu içeri al; senin için yerleştirilmiş gerçek, düzenlenebilir şekillere dönüşsün. Artık metnin yapamadığı şeyleri yapabilirsin: riskli yolu vurgula, bir bounded context'i grupla, işin can alıcı noktasına bir not bırak.

flow.mmd
graph LR
  client --> api
  api --> cache
  api --> db
  worker --> queue

Bunu yapıştırdığında karşına çıkan render edilmiş bir resim değil; tutup taşıyabileceğin bir kutu ve ok kümesi. Yapıyı kod sana bedavaya verdi. Anlamı senin düzenlemelerin ekler.

İkinci yön: diyagramdan koda

Şimdi tersine çevir. Tuvalde bir diyagrama biçim verdin ve onu depoda, anlattığı kodun yanında, incelenip sürümlenebileceği yerde istiyorsun. Onu Mermaid ya da D2 olarak geri aktar ve metni commit et. Biri bir dahaki sefere sistemi değiştiren bir pull request açtığında, diyagramın kodu aynı incelemede, aynı gözlerin önünde değişir.

kod haliclient --> apiapi --> db çizaktar görsel hali
Bir diyagram, iki biçim. Biçim vermek için kodu render et; incelemek için şekilleri dışa aktar.

Yapay zekanın gidiş-dönüşe katkısı

Döngüde bir model olduğunda iki yön de kolaylaşır, ama abartının ima ettiği şekilde değil. Yapay zeka kodun ya da çizimin yerini almak için orada değil. Dağınık boşlukları kapatmak için orada:

  • Gevşek girdiden temiz koda. Bir akışı tek cümleyle anlat ve render edip iyileştirebileceğin ilk diyagram kodunu al.
  • Dağınık diyagramdan derli toplu koda. Commit edilen sürüm iyi okunsun diye dışa aktarılan metnin sadeleştirilmesini ya da yeniden etiketlenmesini iste.
  • Sapmadan taze bir taslağa. Sistem ilerlediğinde eski bir resmi elle yamamak yerine güncel kaynaktan yeniden oluştur ve uzlaştır.

Tek bir gerçeğin iki biçimi. Kod onu incelenebilir tutar; resim okunur tutar.

Diyagramı kodla senkron tutmak neden taraf seçmekten iyi

Tek biçimli diyagram seni kötü bir takasa zorlar. Yalnızca kod olarak diyagram sana incelenebilirlik ve kimsenin okumaktan keyif almadığı bir resim verir. Yalnızca çizim sana koddan sessizce kopan samimi bir resim verir. İkisini de kolay bir gidiş-dönüşle tutmak, aynı kaynaktan metnin incelenebilirliğini ve bir görselin netliğini verir. Hiçbiri ikinci sınıf vatandaş değildir.

İpucu. Kod biçimini depoda sakla ve render edilmiş görseli dokümanlarına göm. Koddaki bir değişiklik ikisini de günceller; böylece doküman ve pull request asla farklı hikayeler anlatmaz.

Edinmeye değer alışkanlık

İki biçimi, iki görünümü olan tek bir çıktı olarak gör. O an hangisi daha hızlıysa onunla taslak çıkar, görsel olarak eskizle ya da yapıyı yaz, sonra gidiş-dönüşle diğer biçimi bedavaya al. Bunu tutarlı biçimde yaparsan eskimiş diyagram gibi kadim bir sorun büyük ölçüde ortadan kalkar, çünkü doğruya dönmenin her zaman ucuz bir yolu vardır.

Biraz diyagram kodu yapıştırıp ona biçim ver ya da bir şey çizip kodunu dışa aktar. Gidiş-dönüşü bir kez hissettiğinde, bir diyagramı güncel tutmak atladığın bir angarya olmaktan çıkar.

Diyagramını her zaman senkron iki biçimde tut

Kodu düzenlenebilir şekillere dönüştür, biçim ver ve tekrar koda aktar. Tek gerçek, iki görünüm.

LetDraw'u ücretsiz aç