Skocz do zawartości

3 narzędzia, które powinien znać każdy programista


Pomocna odpowiedź

3 narzędzia, które powinien znać każdy programista

Pisanie programów może być znacznie łatwiejsze. Wszystko za sprawą kilku prostych narzędzi, które mogą przyspieszyć prace programisty. Tym razem pora na omówienie 3 narzędzi, dzięki którym możliwe jest automatyczne formatowanie kodu oraz jego statyczna i dynamiczna analiza.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

  • Lubię! 1
Link to post
Share on other sites

Muszę przyznać, że widząc tytuł ucieszyłem się, bo myślałem, że będzie o systemie kontroli wersji, systemie przeglądu kodu, systemie zarządzania życiem projektu, ewentualnie jakimś systemie ciągłej integracji. Bo to są narzędzia, które w realny sposób zmieniają podejście do programowania.

Link to post
Share on other sites

Nikt nie powiedział, że to jedyne 3 programy, która warto znać 🙂

Każdy doświadczony programista na pewno mógłby ułożyć swoją listę tego typu. Jak dla mnie akurat ClangFormat to bardzo dobra podpowiedź - nawet dla zupełnie początkujących. Jeśli ktoś ma pomysł na inne przydatne narzędzia, to zachęcam do napisania artykułu i publikacji go na forum. Na pewno dużo osób skorzysta, jeśli będzie więcej takich artykułów.

Link to post
Share on other sites
12 minut temu, Treker napisał:

akurat ClangFormat to bardzo dobra podpowiedź

Tak, ale nie każdy pisze w C++, a do C istnieje inne narzędzie: indent. Jakby nieco mniej wymagający...

Pomijam fakt, że sposób instalacji na Linuksa podany w artykule nie dotyczy Linuksa a wyłącznie Debiana i pochodnych, i to z gatunku tych bardziej przedpotopowych. Nie każdy używa Ubuntu czy Minta...

Link to post
Share on other sites

Mi się bardzo spodobało. O ostatnich dwóch narzędziach nie słyszałem, a się przydzadzą. Aczkolwiek dosyć często używany jest podobno git i docker, czy kubernetes, więc taka technologia też się przyda, tylko, że przy embedded troszkę mniej.

Link to post
Share on other sites
Dnia 30.11.2020 o 16:35, KHX napisał:

Mi się bardzo spodobało. O ostatnich dwóch narzędziach nie słyszałem, a się przydzadzą. Aczkolwiek dosyć często używany jest podobno git i docker, czy kubernetes, więc taka technologia też się przyda, tylko, że przy embedded troszkę mniej.

git przydaje się często. Przy pisaniu programów jest nieoceniony. Nawet w pisaniu prac dyplomowych jest bardzo ważny. 

Link to post
Share on other sites
1 godzinę temu, tomecki napisał:

Najważniejszym narzędziem programisty jest dobre IDE. 

A potem taki programista siedzi i płacze, jak mu przyjdzie poprawić dwie linijki programu na serwerze (gdzie IDE składa się z vima, mana i terminala).

Link to post
Share on other sites
2 godziny temu, tomecki napisał:

Najważniejszym narzędziem programisty jest dobre IDE. 

Najważniejszym narzędziem humanistów jest papier i ołówek, a w przypadku nauk ścisłych (takich jak informatyka) potrzebny jest także kosz. Najwybitniejsi informatycy często nawet nie posiadali komputera. Jak nie potrafisz napisać programu w głowie, to żadne IDE ci też nie pomoże.

Link to post
Share on other sites
Dnia 3.12.2020 o 19:05, deshipu napisał:

Najważniejszym narzędziem humanistów jest papier i ołówek, a w przypadku nauk ścisłych (takich jak informatyka) potrzebny jest także kosz. Najwybitniejsi informatycy często nawet nie posiadali komputera. Jak nie potrafisz napisać programu w głowie, to żadne IDE ci też nie pomoże.

To po co wspominałeś o VCS i CI? 😄 Trochę czepianie się na siłę, bo dobre IDE integruje wiele przydatnych narzędzi i realnie ułatwia pracę, od podstawowych rzeczy takich jak kolorowanie składni i dbanie o automatyczne wcięcia, po autoformatowanie kodu na życzenie, integracja z systemami kontroli wersji, analizy składni, systemem budowania, tworzenie diagramów klas, list TODO na podstawie kodu czy integrację z debugerem, itd. niby pierdoły ale jednak życie programisty staje się przyjemniejsze z dobrym środowiskiem, które nie rzuca kłód pod nogi.

  • Lubię! 2
Link to post
Share on other sites

Wspomniałem o VCS i CI, bo one zmieniają sposób w jaki pracujesz nad projektem, wymuszając dobre praktyki ułatwiające komunikację i późniejsze utrzymanie kodu. Kolorowanie składni, formatowanie kodu, analiza składni, autouzupełnianie, etc. są całkowicie zbędne, a nawet będą przeszkadzać we współpracy z innymi ludźmi w zespole i powodować, że nigdy nie nauczysz się dobrych zwyczajów. Integracja z systemem kontroli wersji uzależni cię od jednego takiego systemu. System budowania w IDE to najgorsze cholerstwo jakie istnieje, bo powoduje, że nagle skonfigurowanie ciągłej integracji, a nawet jakiegokolwiek automatycznego testowania staje się praktycznie niemożliwe. No i wymuszasz w ten sposób użycie tego samego IDE na innych ludziach w projekcie, dzięki czemu zmniejszasz ich produktywność, a jeśli projekt jest open source, to wręcz tracisz potencjalnych pomocników.

  • Lubię! 1
Link to post
Share on other sites

Owszem, zmieniają, tak jak i każde inne narzędzie, które w czymś Cię odciąża, a kiedy potrafi się z każdego korzystać praca staje się dużo efektywniejsza bo możesz atakować problemy na różne sposoby.

Nie zgodzę się, że autoformatowanie i kolorowanie, analiza składni są całkowicie zbędne. Równie dobrze mógłbyś napisać, że VCS jest zbędny, przecież możesz wersjonować ręcznie, tworzyć katalogi, archiwa, itd. Po co system? Da się bez tego żyć ale czy nie jest po prostu łatwiej? Wystarczy przesiąść się do surowego edytora tekstu, np. systemowego notatnika, właśnie o taki banał mi chodzi, a nie psucie życia innym reformatując wszystko na około i np. niwelując jedną z zalet VCS-a jaką jest czytelna historia zmian.

I nie rozumiem w jaki sposób integracia VCS-a z IDE ogranicza Cię do jednego systemu. System wtyczek nie został wymyślony wczoraj, każdy popularny system kontroli wersji ma swoje rozszerzenia do popularnych środowisk. SVN, Git, Perforce. Tak samo system budowania. Naprawdę to takie złe, że możesz skrypt budujący odpalić bezpośrednio z IDE? Nawet projekt VS, który jest mocno hermetyczny da się budować z linii poleceń, sporo IDE obsługuje popularne systemy budowania i tylko od Ciebie zależy czy wolisz sobie podpiąć system bezpośrednio pod IDE czy robić wszystko po swojemu.

I w sumie zaczynamy wchodzić w szczegóły gdzie tak naprawdę problemem jest to, że przeceniacie wartość jednych narzędzi niedoceniając innych, kiedy efektywność to suma umiejętności korzystania z wielu z nich. Kartka papieru to też tylko narzędzie i spore ułatwienie... Ale najważniejszy w każdej pracy jest umysł, to jest podstawowe i najważniejsze narzędzie, nie tylko programisty. I dlatego uważam, że się przyczepiliście o IDE trochę na siłę.

Edytowano przez sebas86
Link to post
Share on other sites
32 minuty temu, sebas86 napisał:

Równie dobrze mógłbyś napisać, że VCS jest zbędny, przecież możesz wersjonować ręcznie, tworzyć katalogi, archiwa, itd. Po co system?

Ale wtedy też będziesz mieć system. Samodzielnie zbudowany, ale jednak. A po co? Po to, żeby poza klepaniem kodu samemu móc współpracować z innymi ludźmi. Wszystkie narzędzia które ma twoje IDE możesz sobie równie dobrze uruchomić z linii poleceń i będzie tak samo dobrze, albo lepiej. Ale przez to IDE ani nie podzielisz się kodem, ani nie zrobisz review.

36 minut temu, sebas86 napisał:

System wtyczek nie został wymyślony wczoraj, każdy popularny system kontroli wersji ma swoje rozszerzenia do popularnych środowisk.

Słowem kluczowym jest tutaj "popularny". A jak ten, którego chcesz użyć akurat nie jest popularny? A jak używasz wewnętrznego systemu, którego producenci IDE nie obsługują? A jeśli obsługa jest, ale zchrzaniona?

38 minut temu, sebas86 napisał:

Nawet projekt VS, który jest mocno hermetyczny da się budować z linii poleceń

Jeżeli akurat twój serwer CI pracuje pod Microsoft Windows, co jest bardzo dziwnym, powiedziałbym nawet samobójczym, wyborem.

39 minut temu, sebas86 napisał:

I dlatego uważam, że się przyczepiliście o IDE trochę na siłę.

Być może nie zetknąłeś się jeszcze z programistami uzależnionymi od IDE, którzy nie potrafią bez tej protezy funkcjonować, i którzy piszą porąbany kod, bo IDE im tak kazało.

Link to post
Share on other sites

@deshipu

1. Ręcznie formatując kod też masz formatowanie składni, a zgodzisz się chyba, że pisanie kodu w sposób czytelny dla siebie i innych jest ważne? O to mi chodzi. Korzystasz z gotowca, nie tracisz swojego, cennego czasu na zajmowanie się pierdołami i rzeczami, które już ktoś opracował, możesz się skupić na innych rzeczach. Ale znam też (niestety) ludzi, którzy marnują swój i później mój czas na ręczne upiększanie kodu, co jest ekstremalną fanaberią i marnotrawieniem czasu...

2. Jeśli masz taki system to po prostu z tym żyjesz. W czym problem? Popularny oznacza też to, że pokrywa potrzeby większości ludzi, a przynajmniej na tyle, że nie opłaca się wyważać drzwi i tworzyć własnego systemu od podstaw.

3. Samobójczy wybór? No to Cię zmartwię, jak programujesz na konkretną platformę to jesteś nierzadko po prostu skazany na konkretne rozwiązania. Chyba, że lubisz wyważać otwarte drzwi. Chcesz tworzyć na iOS-a? Wybierasz platformę z jabłuszkiem, ich IDE i toolchain. Konsole? To samo. To uogólnienie jest po prostu błędne. Może masz komfort, że możesz wybierać dowolną technologię ale to nie jest reguła. Oczywiście możesz wybrać inne toole i platformy, możesz tym samym zrezygnować z możliwości zarabiania na użytkownikach do nich przywiązanych ale przyznasz chyba, że to raczej słaba strategia biznesowa? Tak samo słaba jak wyważanie otwartych drzwi tam gdzie są dostępne gotowe rozwiązania.

4. Nie. Sam korzystam z różnych i doceniam po prostu to, że mam pod ręką wiele przydatnych narzędzi, praca bez niektórych z nich byłaby mocno uciążliwa (np. Perforce ma swoje specyficzne rozwiązania, jak ktoś jest sado-maso... no to śmiało, bez wtyczki do ulubionego edytora też da się żyć 😉 ).

 

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.