Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8677|Odgovoriti: 0

Zakaj ne moreš brez Stackoverflow?

[Kopiraj povezavo]
Objavljeno na 4. 10. 2016 09:30:55 | | | |
Kot programer, če še niste slišali za Stackoverflow, je bolje, da razmislite o tem. Ena izmed knjig o programiranju, ki jih morajo programerji najbolj prebrati (pravzaprav je dovolj, da jo pustijo za knjige o programiranju!). ):

(Domača stran je Jun močno vstavljena, zgornja slika je parodija, nekateri uporabniki tega prej niso razumeli, še posebej, da bi to rekli)
Za tiste programerje, ki knjige še niso prebrali, je čas, da jo kupite. Če ste še vedno v dvomih, si oglejte ta članek, da vidite, zakaj ne morete brez StackOverflow.
Modrost postavljanja vprašanj
Ko postaviš tehnično vprašanje, je pogosto odvisno od tega, kako postavljaš in nadaljuješ z odgovorom, ali boš na koncu dobil uporaben odgovor. —— Eric S. Raymond
Včasih jasen opis problema, še posebej tehničnega, ni tako preprost, kot se zdi. Postavljanje vprašanj je bilo vedno znanost, a žal mnogi tega ne dojemajo ali mu ne posvečajo dovolj pozornosti. Ali pa nekateri spraševalci sploh ne prosijo za pomoč. Tako bomo našli vsa vprašanja na katera ljudje ne morejo ali pa jih nočejo odgovoriti:
Težava z Java regexom?
Kaj je odzivni čas na SLA?
Kakšna je razlika med ATL razredi in splošnim dedovanjem razredov?
Da se izognete zaprtju ali spremembam zgornjega problema, dodajte sliko tukaj, da doživite ta sranje problem:

Veliko teh vprašanj lahko najdete v neodgovorjenih vprašanjih na SegmentFault, zato očitno veliko ljudi nima modrosti ali odnosa, da bi postavljali vprašanja. Raymond in Rick Moen sta napisala klasičen esej o tem, kako postavljati vprašanja, The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html#translations), ki je bil preveden v različne jezike, široko razširjen in ga lahko najdete v kitajski izdaji tukaj. Stackoverflow in Segmentfalut imata prav tako predloge za postavljanje vprašanj:
Center za pomoč > vprašanja
Kako vprašati
Kako naj postavim dobro vprašanje?
Kakšna vprašanja so dobrodošla
Na Stackoverflow je preveč klasičnih vprašanj, zato se lahko naučimo, kako postavljati vprašanja in komunicirati z odgovarjači. Ko se navadiš brati vprašanja na stackoverflow, jih boš nezavedno posnemal pri postavljanju vprašanj, s čimer se boš izognil neumnim vprašanjem. Tukaj je nekaj najpomembnejših vprašanj, na katera je treba biti pozoren pri postavljanju vprašanj:
Postavite vprašanje, na katerega iskalnik nima zadovoljivega odgovora (Google je star vsaj štiri strani).
Postavljaj vprašanja, ki jih sam ne znaš rešiti in si jih že veliko poskusil
Poskusite problem opisati čim bolj jasno: dobra tipografija, koda, pozivi za napake, slike itd
Naj bodo vaša vprašanja koristna za druge
Na vprašanje mora biti jasen odgovor in ne sme biti preveč subjektivnosti
Različne sheme
Velikokrat upamo, da bomo našli rešitev, a na Stackoverflowu so pogosto nepričakovane koristi. Lahko opazite različne rešitve problema, vključno s primerjavami teh rešitev.
Recimo, da zdaj želite vedeti, kako poklicati zunanji ukaz v Pythonu, na primer ls -l, da natisnete članek pod mapo. Poguglajte ukaz Python call system in prvi je sorodno vprašanje na stackoverflow: Klicanje zunanjega ukaza v Pythonu. (http://stackoverflow.com/questio ... l-command-in-python) (Google tehnične težave, v bistvu težave povezane s stackoverflow, bodo prikazane).
Nato pod tem vprašanjem nekdo povzame več načinov za klicanje zunanjih ukazov:
os.system()
os.popen()
subprocess.popen()
subprocess.call()
subprocess.run()
Vsaka metoda je prav tako predstavljena, lahko izberete tisto, ki ustreza vašemu scenariju uporabe. Drug primer je vprašanje: Kako preveriti, ali datoteka obstaja s Pythonom? (http://stackoverflow.com/questio ... exists-using-python), ki opisuje različne metode v Pythonu za preverjanje prisotnosti datoteke.
Uporaba orodij
Obstaja veliko zmogljivih orodij, ki nam lahko pomagajo bolje preučevati probleme, morda poznate orodje za razhroščevanje v gdb, morda poznate modul za spremljanje timeit v Pythonu, vendar ne poznate orodij, ki jih ne poznate. Velikokrat, ko prvič spoznamo orodje, imamo občutek, da se srečamo prepozno. Vendar pa so orodja, ki jih imate radi, vedno zelo težko dostopna.
Na Stackoverflow je lahko v vsakem vprašanju, odgovoru ali komentarju nekaj dobrih orodij, vedno pa boste imeli priložnost najti najboljša, ki so ostala za vrsticami.
Tukaj je seznam nekaterih odličnih orodij, ki sem jih našel:
Truss/Strace: Sledi sistemskim klicem in prejetim signalom, ko se proces izvaja, Strace lahko sledi sistemskim klicem, ki jih generira proces, vključno s parametri, vrnjenimi vrednostmi in časom izvajanja. (Iz vprašanja: Zakaj je branje vrstic iz stdin v C++ veliko počasneje kot v Pythonu?)
vprof: Vizualno orodje, ki analizira značilnosti Python programov, kot so čas izvajanja, poraba pomnilnika itd. (Iz vprašanja: Kako lahko profiliraš Pythona?)
Regex 101: Spletni pomočnik za regularne izraze, ki vam lahko pomaga razumeti pomen regularnih izrazov, odpravljati napake regularnih izrazov in izvajati preproste eksperimente. (Iz številke: Učenje regularnih izrazov)
Tukaj je preprost primer Regex 101:

Proces razmišljanja
Velikokrat, ko naletimo na težavo, nimamo načina, kako začeti, in ne vemo, v katero smer naj razmišljamo. A s stackoverflow lahko zlahka odkrijemo specifično rešitev in včasih celo vemo, kaj si drugi mislijo, ko se soočijo s tem problemom.
Recimo, da želite uporabiti dekoratorja za izvedbo naloge tako, da dodate pred in za nizom, ki ga vrne funkcija Say spodaj, in razmišljate, da ga definirate takole.
@makebold
@makeitalic
def say():
vrni»Pozdravljeni«
Vsak klic, da rečem, se vrne Živjo. A kako implementirati makebold in makeitalic je problem. Na Stackoverflow so veliki biki, ki vam bodo neposredno povedali odgovor in vam ponudili povezavo do dokumentacije dekoraterjev. Obstajajo pa tudi Danieli, ki vam podrobno povedo o svojem razmišljanju in razumevanju dekoraterjev, da boste lahko globoko razumeli mehanizem dekoraterja.
Kot odgovor na zgornje vprašanje obstaja odgovor, ki je prejel več kot 3.000 všečkov in vam razlaga, kako rešiti problem korak za korakom. Najprej nam povejte, kakšne so značilnosti funkcij v Pythonu:
Funkcije so objekti
Funkcijo je mogoče dodeliti spremenljivki
Funkcijo je mogoče definirati v drugi funkciji
Ena funkcija lahko vrne drugo funkcijo
Funkcije lahko posredujete kot parametre
Nato začnite razlagati, kaj je dekorater: pravzaprav je enkapsulator, ki nam omogoča, da izvajamo drugo kodo pred in po izvajanju izvirne funkcije brez njenega spreminjanja. Preprost prototip dekoratorja je izveden ročno, sledi uvedba sintakse dekoratorjev v Pythonu. Nazadnje so navedene nekatere napredne uporabe dekoraterjev, vključno s posredovanjem parametrov dekoratorjem. Preberi celoten odgovor, zagotovo boš imel globlje razumevanje dekoraterja in spoznal način razmišljanja, kako ga razumeti. Na ta način, ko sledite tej poti razmišljanja, lahko sami ugotovite, kako uporabiti dekoraterje.
Možni mrtvi koti
Ko nimate vprašanj, lahko občasno obiščete stackoverflow, prebrskate nekaj vprašanj z več glasovi in preverite, na kaj so drugi odgovorili. V tej obsežni bazi znanja boste najverjetneje našli nekatere svoje kognitivne slepe pege in odkrili vsebine, na katere nikoli niste bili pozorni.
Našel sem nekaj zanimivih vprašanj, kot so:
Tiskati v terminalu z barvami v Pythonu?
Kaj je metarazred v Pythonu?
Katera je vaša najbolj produktivna bližnjica z Vimom?
Tukaj sem pripravil seznam kakovostnih vprašanj o Pythonu za pogosto uporabo.
Žal mi je, da sva se srečala prepozno
Torej, kako najti StackOverflow, dva predloga:
Natančno opišite problem v angleščini
Poglej na Googlu
Dokler niste prvi, ki je naletel na tehnično težavo, boste verjetno našli enako ali podobno težavo tudi na StackOverflow. Srečajte se kmalu, zgodaj se zaljubite v Stackoverflow in ugotovili boste, da je življenje zelo udobno.





Prejšnji:Windows batch connection VPN spreminja usmerjevalno tabelo
Naslednji:node.js modularni vmesnik
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com