Programowanie: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M (Wycofano ostatnie edycje użytkownika 178.212.219.14, powód: nieśmieszne)
Znaczniki: mobilna mobilna www rewert
 
(Nie pokazano 45 wersji utworzonych przez 29 użytkowników)
Linia 1: Linia 1:
[[Plik:Extreme programming in action.jpg|thumb|250px|Rasowy programista w akcji – odpowiednia odzież chroni przed rozbiciem sobie czoła o blat stołu]]
'''Programowanie''' – czynność polegająca na pisaniu [[kod źródłowy|kodu źródłowego]], który zostaje przerobiony na kod w [[C]], który zostaje przerobiony na kod w [[asembler]]ze. W wyniku tych przekształceń rzadko, choć czasem powstaje [[program]] wykonywalny.
'''Programowanie''' – czynność polegająca na przelewaniu radosnych pomysłów [[programista|programisty]] w bezduszny [[kod źródłowy]], w językach [[A]], [[B]], [[D]], lecz najczęściej [[C (język programowania)|C]]. W wyniku tych przekształceń rzadko, choć czasem powstaje [[program]] wykonywalny.


Programowanie jest sztuką. Powstający [[program]] (jaki by nie był) jest produktem ubocznym tej sztuki, więc należy się cieszyć, że w ogóle powstał.
Programują głównie [[linuksowiec|linuksowcy]], użytkownicy [[Windows]]a, jak i sami jego twórcy nie posiadają takich umiejętności.


Programują głównie [[linuksiarz|linuksowcy]]. Użytkownicy [[Microsoft Windows|Windowsa]], jak i sami jego twórcy nie posiadają takich umiejętności.
==Etapy wytwarzania oprogramowania==
* Zebranie wymagań klienta.
** Klient w sposób niezrozumiały opisuje przedstawicielowi producenta swoje niesprecyzowane i niespójne wymagania co do programu.
* Analiza
** Analitycy producenta próbując wykrystalizować wymagania klienta tworzy szereg nowych wymagań, jego zdaniem niezbędnych do realizacji wymagań podstawowych. W rzeczywistości dodatkowe wymagania są rezultatem przyjęcia błędnego założenia, że klient wie, czego chce.
* Projekt
** Projektanci próbują przełożyć stworzony przez analityków [[strumień świadomości]] na język zrozumiały dla programistów. Zafascynowani teorią [[Bazy danych|baz danych]] przerabiają wstępny projekt, tak by wykorzystywał on bazy [[SQL]]owe.
* Implementacja
** Programiści wklepują w swoim ulubionym języku programowania kod wymyślony przez projektantów, ucząc się w międzyczasie SQLa. Empiryczne badania dowodzą, że w projekcie średniego ryzyka o średniej złożoności opóźnienie związane z dochodzeniem gdzie wskazuje który [[wskaźnik]] zajmuje średnio ''6'' tygodni.


== Etapy wytwarzania oprogramowania ==
* '''Zebranie wymagań klienta''' – klient w sposób niezrozumiały opisuje przedstawicielowi producenta swoje niesprecyzowane, niespójne i wewnętrznie sprzeczne wymagania co do programu.
* '''Analiza''' – analitycy producenta próbując wykrystalizować wymagania klienta tworzą szereg nowych wymagań, ich zdaniem niezbędnych do realizacji wymagań podstawowych. W rzeczywistości dodatkowe wymagania są rezultatem przyjęcia błędnego założenia, że klient wie, czego chce.
* '''Projekt''' – projektanci próbują przełożyć stworzony przez analityków [[strumień świadomości]] na język zrozumiały dla programistów. Zafascynowani technologiami [[big data]], [[uczenie maszynowe|uczenia maszynowego]] i przetwarzania chmurowego, przerabiają aplikację zarządzającą biblioteką szkolną w rozproszony system przetwarzania strumieniowego rekordów bibliotecznych o wielkiej przepustowości, sterowany centralnie przez [[sztuczna inteligencja|sztuczną inteligencję]].
* '''Implementacja''' – programiści wklepują w swoim ulubionym języku programowania kod wymyślony przez projektantów, ucząc się w międzyczasie ww. technologii. Empiryczne badania dowodzą, że w projekcie średniego ryzyka o średniej złożoności opóźnienie związane z dochodzeniem po co właściwie powstała połowa modułów zajmuje zwykle około sześciu tygodni.
* '''Testowanie''' – tester przygląda się pracy ww. osób i udowadnia im dlaczego są debilami, którzy zmarnowali czas i pieniądze firmy na realizację swoich kretyńskich pomysłów.


== Zasady programowania ==
== Zasady programowania ==
* Pisz dużo programów, nie zwracaj uwagi na to, że one nic nie robią.
* Pisz dużo programów, nie zwracaj uwagi na to, że one nic nie robią.
* Nie liczy się funkcjonalność napisanego programu – liczy się ile linii kodu zawiera.
* Nie liczy się funkcjonalność napisanego programu – liczy się ile linii kodu zawiera.
* Jeśli nie rozumiesz kodu napisanego przez siebie, nie martw się inni swoich też nie rozumieją.
* Jeśli nie rozumiesz kodu napisanego przez siebie, nie martw się, inni swoich też nie rozumieją.
* Normy wytwarzania oprogramowania są elementem świata wyidealizowanego.
* Normy wytwarzania oprogramowania są elementem świata wyidealizowanego.
* [[Programowanie ekstremalne]] jest podstawą świata rzeczywistego.
* [[Programowanie ekstremalne]] jest podstawą świata rzeczywistego.
* Jeżeli przeczytałeś jakieś książki [[David Parnas|Parnasa]] i nie zamierzasz pisać już pracy magisterskiej z [[Inżynieria oprogramowania|inżynierii oprogramowania]] – zapomnij o nich.
* Jeżeli przeczytałeś jakieś książki [[David Parnas|Parnasa]] i nie zamierzasz pisać pracy magisterskiej z [[Inżynieria oprogramowania|inżynierii oprogramowania]] – zapomnij o nich.
* [[Model kaskadowy wytwarzania oprogramowania]] jest mrzonką a wszelkie próby jej realizacji kończą się nieograniczonym wydatkiem kosztów.
* [[Model kaskadowy wytwarzania oprogramowania]] jest mrzonką a wszelkie próby jej realizacji kończą się nieograniczonym zwiększaniem kosztów.
* Kiedy programu napisanego przez ciebie zacznie ktoś używać, to znaczy, że gdzieś popełniłeś błąd.
* Kiedy programu napisanego przez ciebie zacznie ktoś używać, to znaczy, że gdzieś popełniłeś błąd.
* Pisz kod jak najbardziej nieczytelny – jeżeli ktoś zacznie w nim grzebać, nie doszuka się źródła błędu i nie nazwie cię głupkiem.
* Pisz kod jak najbardziej nieczytelny – jeżeli ktoś zacznie w nim grzebać, nie doszuka się źródła błędu i nie nazwie cię głupkiem.
* nadawaj zmiennym dziwne nazwy typu ''XFGRRTEF___DGFF'', ''R2D2' czy ''Michal_Wisnewski''.
* Nadawaj zmiennym dziwne nazwy typu ''XFGRRTEF___DGFF'', ''R2D2'' czy ''Michal_Wisnewski''.
* Jeśli twój [[język programowania]] pozwala na identyfikatory [[Unicode]], to dobrym pomysłem będzie ''gżegżółka'', zerknij też w tablice znaków dla gruzińskiego i chińskiego tradycyjnego.
* Jeśli dane są w jakiś sposób ze sobą związane, to zamiast tworzenia tablic, zastosuj zmienne o podobnych nazwach: aaaa, aaab, aaac...
* Używając makrodefinicji, zmiennych tekstowych i szablonów emuluj różne języki programowania.
* Używając makrodefinicji, zmiennych tekstowych i szablonów emuluj różne języki programowania.
* Operacje matematyczne wyrażaj w [[Odwrotna notacja polska|odwrotnej notacji polskiej]].
* Logikę osadzaj w wyjątkach.
* Nie używaj iteracji. Rekurencja uczyni twój program bardziej zagmatwanym.
* Osadzaj język w języku.
* Korzystaj z Basha. Większość ludzi go nie rozumie, lub wydaje im się, że go rozumieją.
* Stosuj paradygmat funkcyjny i na potęgę używaj domknięć.
* Jeżeli program nie działa, zmień nazwy wszystkich zmiennych na inne, najlepiej zgodne z modną w przypadku danego języka konwencją.
* Jeżeli program nie działa, zmień nazwy wszystkich zmiennych na inne, najlepiej zgodne z modną w przypadku danego języka konwencją.
* Jeżeli dalej nie działa – skasuj wszystkie komentarze i wpisz je na nowo w innych miejscach.
* Jeżeli dalej nie działa – skasuj wszystkie komentarze i wpisz je na nowo w innych miejscach.
* Jeżeli to nie pomoże, wyłącz i włącz ponownie kompilator.
* Jeżeli to nie pomoże, wyłącz i włącz ponownie kompilator.
* Jeżeli przed rozpoczęciem kodowania sporządziłeś jakieś plany – wyrzuć je.
* Jeżeli przed rozpoczęciem kodowania sporządziłeś jakieś plany – wyrzuć je.
* Jeżeli po godzinach spędzonych na analizie kodu i powtarzaniu ''przecież to jest dobrze i powinno działać!'' zastanów się i sprawdź, czy plik instalacyjny twojego kompilatora nie jest uszkodzony. Być może twój komputer stoi za blisko innego urządzenia elektrycznego, i pole magnetyczne zakłóca działanie procesora komputera, przez co twój program się zawiesza.
* Po godzinach spędzonych na analizie kodu i powtarzaniu ''przecież to jest dobrze i powinno działać!'' zastanów się i sprawdź, czy plik instalacyjny twojego kompilatora nie jest uszkodzony. Być może twój komputer stoi za blisko innego urządzenia elektrycznego, i pole magnetyczne zakłóca działanie procesora komputera, przez co twój program się zawiesza.
* W ostateczności skonsultuj się z [[astrologia|astrologiem]].


==Prawdy o programach==
== Prawdy o programach ==
* Pisanie kodu jest rozkoszą. Kompilacja kodu jest jak zimny prysznic. Pielęgnacja kodu jest piekłem.
* Pisanie kodu jest rozkoszą. Kompilacja kodu jest jak zimny prysznic. Pielęgnacja kodu jest piekłem.
* Pełną, spójną i poprawną dokumentację mają tylko programy bezużyteczne.
* Pełną, spójną i poprawną dokumentację mają tylko programy bezużyteczne.
* Złożoność programu rośnie do momentu przekroczenia zdolności programisty ten program konserwującego.
* Złożoność programu rośnie do momentu przekroczenia zdolności programisty ten program konserwującego.

==Prawdy o informatykach==
== Prawdy o programistach ==
* Bluzganie to jedyny język opanowany w pełni wszystkich programistów.
* Bluzganie to jedyny język opanowany w pełni przez wszystkich programistów.


== Jak zacząć? ==
== Jak zacząć? ==
Najlepiej nie zaczynać.
Najlepiej nie zaczynać, ponieważ grozi to zjednoczeniem się ze swoją [[komputer osobisty|maszyną]]. Zaczniesz ją kochać, pisać dla niej programy - stworzysz swój własny świat, odizolujesz się od społeczeństwa.


== Zastosowania ==
== Zastosowania ==
Prawdziwi programiści piszą programy nie posiadające wartości użytkowej, a jedynie roztrząsające pewne problemy teoretyczne, których rozwiązanie niczemu nie służy. Interesuje ich głównie problematyka:
* Co by się stało, gdyby czterech twoich kolegów zakaziło się grypą: czy cała populacja może wyginąć?
* Rozwiązywania układów różniczkowych wysokich rzędów.
* Czy za pomocą dwóch stosów talerzy da się symulować kolejkę sklepową?

Źli programiści używają programowania aby:
Źli programiści używają programowania aby:
* Zaspamować [[YouTube]].
* Zaspamować [[YouTube]].
* Zaspamować twoją skrzynkę pocztową.
* Zaspamować twoją skrzynkę pocztową.
* Zaspamować twoje ulubione forum.
* Zaspamować cały Internet.
* Zaspamować cały Internet.
* Zainstalować ci programy, które robią złe rzeczy, w sposób widoczny jedynie dla [[informatyk]]a albo i niewidoczny w ogóle.
* Zainstalować ci programy, które robią złe rzeczy, w sposób widoczny jedynie dla [[informatyk]]a albo i niewidoczny w ogóle.
Linia 52: Linia 65:


Dobrzy programiści, walczący ze złymi, używają programowania aby:
Dobrzy programiści, walczący ze złymi, używają programowania aby:
* Napisać program antywirusowy, który zajmie całą pamięć twojego komputera.
* Napisać [[program antywirusowy]], który zajmie całą pamięć twojego komputera.
* Napisać firewall, który zablokuje ci dostęp do internetu.
* Napisać firewall, który zablokuje ci dostęp do internetu.


== Zobacz też ==
[[kategoria:Informatyka]]
* [[język programowania]]
* [[programista]]
* [[inżynieria oprogramowania]]
* [[program]]
* [[programowanie na kartce]]

{{stopka}}
[[kategoria:Programowanie| ]]

Aktualna wersja na dzień 19:52, 11 mar 2022

Rasowy programista w akcji – odpowiednia odzież chroni przed rozbiciem sobie czoła o blat stołu

Programowanie – czynność polegająca na przelewaniu radosnych pomysłów programisty w bezduszny kod źródłowy, w językach A, B, D, lecz najczęściej C. W wyniku tych przekształceń rzadko, choć czasem powstaje program wykonywalny.

Programowanie jest sztuką. Powstający program (jaki by nie był) jest produktem ubocznym tej sztuki, więc należy się cieszyć, że w ogóle powstał.

Programują głównie linuksowcy. Użytkownicy Windowsa, jak i sami jego twórcy nie posiadają takich umiejętności.

Etapy wytwarzania oprogramowania[edytuj • edytuj kod]

  • Zebranie wymagań klienta – klient w sposób niezrozumiały opisuje przedstawicielowi producenta swoje niesprecyzowane, niespójne i wewnętrznie sprzeczne wymagania co do programu.
  • Analiza – analitycy producenta próbując wykrystalizować wymagania klienta tworzą szereg nowych wymagań, ich zdaniem niezbędnych do realizacji wymagań podstawowych. W rzeczywistości dodatkowe wymagania są rezultatem przyjęcia błędnego założenia, że klient wie, czego chce.
  • Projekt – projektanci próbują przełożyć stworzony przez analityków strumień świadomości na język zrozumiały dla programistów. Zafascynowani technologiami big data, uczenia maszynowego i przetwarzania chmurowego, przerabiają aplikację zarządzającą biblioteką szkolną w rozproszony system przetwarzania strumieniowego rekordów bibliotecznych o wielkiej przepustowości, sterowany centralnie przez sztuczną inteligencję.
  • Implementacja – programiści wklepują w swoim ulubionym języku programowania kod wymyślony przez projektantów, ucząc się w międzyczasie ww. technologii. Empiryczne badania dowodzą, że w projekcie średniego ryzyka o średniej złożoności opóźnienie związane z dochodzeniem po co właściwie powstała połowa modułów zajmuje zwykle około sześciu tygodni.
  • Testowanie – tester przygląda się pracy ww. osób i udowadnia im dlaczego są debilami, którzy zmarnowali czas i pieniądze firmy na realizację swoich kretyńskich pomysłów.

Zasady programowania[edytuj • edytuj kod]

  • Pisz dużo programów, nie zwracaj uwagi na to, że one nic nie robią.
  • Nie liczy się funkcjonalność napisanego programu – liczy się ile linii kodu zawiera.
  • Jeśli nie rozumiesz kodu napisanego przez siebie, nie martw się, inni swoich też nie rozumieją.
  • Normy wytwarzania oprogramowania są elementem świata wyidealizowanego.
  • Programowanie ekstremalne jest podstawą świata rzeczywistego.
  • Jeżeli przeczytałeś jakieś książki Parnasa i nie zamierzasz pisać pracy magisterskiej z inżynierii oprogramowania – zapomnij o nich.
  • Model kaskadowy wytwarzania oprogramowania jest mrzonką a wszelkie próby jej realizacji kończą się nieograniczonym zwiększaniem kosztów.
  • Kiedy programu napisanego przez ciebie zacznie ktoś używać, to znaczy, że gdzieś popełniłeś błąd.
  • Pisz kod jak najbardziej nieczytelny – jeżeli ktoś zacznie w nim grzebać, nie doszuka się źródła błędu i nie nazwie cię głupkiem.
  • Nadawaj zmiennym dziwne nazwy typu XFGRRTEF___DGFF, R2D2 czy Michal_Wisnewski.
  • Jeśli twój język programowania pozwala na identyfikatory Unicode, to dobrym pomysłem będzie gżegżółka, zerknij też w tablice znaków dla gruzińskiego i chińskiego tradycyjnego.
  • Jeśli dane są w jakiś sposób ze sobą związane, to zamiast tworzenia tablic, zastosuj zmienne o podobnych nazwach: aaaa, aaab, aaac...
  • Używając makrodefinicji, zmiennych tekstowych i szablonów emuluj różne języki programowania.
  • Operacje matematyczne wyrażaj w odwrotnej notacji polskiej.
  • Logikę osadzaj w wyjątkach.
  • Nie używaj iteracji. Rekurencja uczyni twój program bardziej zagmatwanym.
  • Osadzaj język w języku.
  • Korzystaj z Basha. Większość ludzi go nie rozumie, lub wydaje im się, że go rozumieją.
  • Stosuj paradygmat funkcyjny i na potęgę używaj domknięć.
  • Jeżeli program nie działa, zmień nazwy wszystkich zmiennych na inne, najlepiej zgodne z modną w przypadku danego języka konwencją.
  • Jeżeli dalej nie działa – skasuj wszystkie komentarze i wpisz je na nowo w innych miejscach.
  • Jeżeli to nie pomoże, wyłącz i włącz ponownie kompilator.
  • Jeżeli przed rozpoczęciem kodowania sporządziłeś jakieś plany – wyrzuć je.
  • Po godzinach spędzonych na analizie kodu i powtarzaniu przecież to jest dobrze i powinno działać! zastanów się i sprawdź, czy plik instalacyjny twojego kompilatora nie jest uszkodzony. Być może twój komputer stoi za blisko innego urządzenia elektrycznego, i pole magnetyczne zakłóca działanie procesora komputera, przez co twój program się zawiesza.
  • W ostateczności skonsultuj się z astrologiem.

Prawdy o programach[edytuj • edytuj kod]

  • Pisanie kodu jest rozkoszą. Kompilacja kodu jest jak zimny prysznic. Pielęgnacja kodu jest piekłem.
  • Pełną, spójną i poprawną dokumentację mają tylko programy bezużyteczne.
  • Złożoność programu rośnie do momentu przekroczenia zdolności programisty ten program konserwującego.

Prawdy o programistach[edytuj • edytuj kod]

  • Bluzganie to jedyny język opanowany w pełni przez wszystkich programistów.

Jak zacząć?[edytuj • edytuj kod]

Najlepiej nie zaczynać.

Zastosowania[edytuj • edytuj kod]

Prawdziwi programiści piszą programy nie posiadające wartości użytkowej, a jedynie roztrząsające pewne problemy teoretyczne, których rozwiązanie niczemu nie służy. Interesuje ich głównie problematyka:

  • Co by się stało, gdyby czterech twoich kolegów zakaziło się grypą: czy cała populacja może wyginąć?
  • Rozwiązywania układów różniczkowych wysokich rzędów.
  • Czy za pomocą dwóch stosów talerzy da się symulować kolejkę sklepową?

Źli programiści używają programowania aby:

  • Zaspamować YouTube.
  • Zaspamować twoją skrzynkę pocztową.
  • Zaspamować cały Internet.
  • Zainstalować ci programy, które robią złe rzeczy, w sposób widoczny jedynie dla informatyka albo i niewidoczny w ogóle.
  • Zainfekować twój komputer, doprowadzając go do stanu, w którym potrzebne będzie wezwanie informatyka.

Dobrzy programiści, walczący ze złymi, używają programowania aby:

  • Napisać program antywirusowy, który zajmie całą pamięć twojego komputera.
  • Napisać firewall, który zablokuje ci dostęp do internetu.

Zobacz też[edytuj • edytuj kod]