Bugun, bu haftaki sunuma hazirliklarla ve yaptigim is gorusmesi ile gecti. Kisa kisa notlar:

  • Python ile ilgili okudugum Real Python’da name = “main olayini cok guzel bir sekilde aciklayan detayli makale. Elimizde ufak bir skript degil de icinde cesitli fonksiyonlar barindiran daha cok “modulu” andiran bir kod varsa, burada asil calisitirilacak olan kodu main icinde tanimlayip if __name__ = "__main"": icinde cagirmak cok daha makul. Boylece kodu okuyan kisi, kodun komut satirindan cagirildiginda “first entry point”ini acik bir sekilde gorebiliyor. Ayni zamanda programi bir modul seklinde de import edebilme olanagi kazaniyoruz. Makaleden bir ornekle:

    from time import sleep
    
    print("This is my file to demonstrate best practices.")
    
    def process_data(data):
    
        print("Beginning data processing...")
    
        modified_data = data + " that has been modified"
        sleep(3)
        print("Data processing finished.")
        return modified_data
    
    def main():
    
        data = "My data read from the Web"
    
        print(data)
        modified_data = process_data(data)
        print(modified_data)
    
    if __name__ == "__main__":
    
        main()
    
  • Bu aralar Jupyter Notebook’la ilgili birkac sey izledip, sagda solda laf ettigimden midir bilinmez, Youtube bana konuyla ve Joel Grus ile ilgili videolar oneriyor. Kendisinin gecen yil Kaggle Coffee Chat adli yayinda, Youtube’da live-coding sessionlarini arada takip ettigim Rachel Tatman’in bir sohbetine denk geldim. Konu yine Notebook’lar etrafinda donuyordu. Entereasan bir sekilde Joel’in tum makul aciklamalari ve sorgulamalarina ragmen, Rachel gayet “simarik bir data scientist” modunda, dunyanin en anlamsiz seylerini savundugunu izledim ve videonun yarisinda dayanamayip kapattim. Joel’in savundugu, madem gunun sonunda kod yaziyoruz, bunu dogru durust ve belirli “best practice”lere gore yazalim ki en sonunda dogru calissin, tekrarlanabilsin, hatalari kolay ayiklanabilsin ve tekrar kolaylikla geri donulebilip, baskalari tarafindan da kolaylikla kullanilabilsin. Yazilimlar sirf bunlari saglasinlar diye yillardir oturmus bir suru gelenek ve “pattern”ler var. Bunlar bosuna olusturulmamis, workflow’un duzgun isleyebilsin diye, “long-run”da basin belaya girmesin diye konulmus. “Data scientist”ler hizli prototipleme istiyormus; peki o hizli yazdiginiz kodlara bir hafta sonra geri dondugunuzde anlayabiliyor musunuz (dogru o zamana kadar coktaan Untitled100.ipynb’ye baslamis oluyorsunuz…)… Cok garip ya, bariz bir “irrasyonel” direnc var bu konuda anladigim; daha dogrusu bir turlu anlamadigim… Neyse, kendileri bilir elbette….