27.02.20232 min
Bulldogjob

Bulldogjob

Złota reguła twórcy Linuksa, którą powinien znać każdy developer

Linus Torvalds po raz kolejny postanowił się podzielić swoim bogatym doświadczeniem. Tym razem jest to złota zasada, którą według niego powinien znać i stosować każdy programista.

Złota reguła twórcy Linuksa, którą powinien znać każdy developer

Minęły już chyba czasy, gdy Linus Torvalds kierował środkowy palec w kierunku NVIDII i na publicznej liście mailingowej nie przebierając w słowach, krytykował współpracowników. Nadal jednak pozostaje on jednym z głosów budzących największe zainteresowanie w IT. I to w skali globalnej. Jego doświadczenie, opinie nieobarczone PR-ową autocenzurą często przekładają się na trafione diagnozy i prognozy. 

Złota rada Linusa Torvaldsa

Każdy developer tym bardziej powinien sobie wziąć do serca jedną z najświeższych wypowiedzi twórcy Linuksa, w której dzieli się on – w swoim stylu – najważniejszym w jego opinii czynnikiem, którym każdy programista powinien się kierować podczas decydowania o tym, by merge’ować zmiany w gicie. Choć zdaje się ona dość nieskomplikowana, to i tak z jednemu z programistów pracujących nad rozwojem kernela udało się otrzymać reprymendę za niestosowanie się do niej.

Złotą zasadą, którą przyjąć według Linusa Torvaldsa powinien każdy programista, jest: „jeśli nie potrafisz uzasadnić merge’a, to PO PROSTU GO NIE RÓB!”:

Zobaczyłem commit 5c0f220e1b2d („Merge brancha ‘for-linus/hardening’ z for-next/hardening”).

Ta jednowierszowa część shortloga jest dosłownie całą wiadomością z commita.

Mówiłem to już wcześniej, ale najwidoczniej muszę to powiedzieć znów: jeśli nie kłopoczesz się, tym by wyjaśnić DLACZEGO merge istnieje, to ten merge jest z definicji śmieciem.

To naprawdę powinna być zasada, którą każdy developer powinien wziąć sobie do serca. Nie piszę sobie tego tutaj po próżnicy.


Widocznie poirytowany Torvalds powtórzył swoją zasadę jeszcze kilka razy, twierdząc między innymi, że merge, którego dotyczył problem, w ogóle nie miał prawa bytu. Według niego brak uzasadnienia oznacza po prostu, że żadnego solidnego uzasadnienia nie ma, chyba że…

Jeśli jest jakieś uzasadnienie, to je przedstaw, do cholery, i spraw, że merge commit będzie sensowny. W innym wypadku to będzie wyglądało całkowicie bezsensownie. A ja dosłownie *brzydzę się* bezsensownymi merge’ami


Finalnie wyjaśniło się, że problematyczny merge commit wprowadzał poprawki jeszcze do cyklu opublikowanego przed tygodniem Linuksa 6.2. Pojawiły się w nim takie nowości, jak obsługa dyskretnych grafik Intela z rodziny Arc, obsługa kontrowersyjnego mechanizmu Intel On-Demand oraz stabilne wsparcie dla ARM-owych procesorów Apple: M1 Pro, M1 Max oraz M1 Ultra.

<p>Loading...</p>