Programmeerijana, kui sa pole Stackoverflow'st kuulnud, siis mõtle selle üle. Üks programmeerimisraamatuid, mida programmeerijad kõige rohkem lugema peavad (tegelikult piisab sellest, kui jätta see programmeerimisraamatutele!). ):
(Avaleht, mille Jun tugevalt lisas, ülalolev pilt on paroodiapilt, mõned netikasutajad ei saanud sellest varem aru, eriti et seda öelda) Neile programmeerijatele, kes pole raamatut veel lugenud, on aeg see osta. Kui oled endiselt kõhklev, vaata seda artiklit, miks sa ei saa StackOverflow'ta hakkama. Küsimuste esitamise tarkus Kui esitad tehnilise küsimuse, sõltub kasulik vastus sageli sellest, kuidas sa küsid ja järgid. —— Eric S. Raymond Mõnikord ei ole probleemi, eriti tehnilise, selge kirjeldus nii lihtne, kui tundub. Küsimuste esitamine on alati olnud teadus, kuid kahjuks paljud inimesed ei saa sellest aru või ei pööra sellele piisavalt tähelepanu. Või mõned küsijad ei küsi üldse abi. Seega leiame igasuguseid küsimusi, millele inimesed ei suuda vastata või ei taha vastata: Java regex probleem? Mis on SLA reageerimisaeg? Mis on ATL-klassidel ja üldisel klassi pärimisel? Et vältida ülaltoodud probleemi sulgemist või muutumist, pane siia pilt, et seda jama probleemi kogeda:
Selliseid küsimusi leiab hulgaliselt SegmentFaulti vastamata küsimustest, nii et paljudel inimestel pole ilmselgelt tarkust ega suhtumist küsimusi esitada. Raymond ja Rick Moen kirjutasid klassikalise essee küsimuste esitamisest "The Smart Way" (http://www.catb.org/~esr/faqs/smart-questions.html#translations), mis on tõlgitud mitmetesse keeltesse ja on laialdaselt levitatud ning mille hiina väljaanne on leitav siit. Stackoverflow ja Segmentfalut pakuvad samuti soovitusi küsimuste esitamiseks: Abikeskus > küsimine Kuidas küsida Kuidas ma peaksin head küsimust esitama? Millised küsimused on teretulnud Stackoverflow's on liiga palju klassikalisi küsimusi ja me saame õppida küsimusi esitama ja vastajatega suhtlema. Kui harjud stackoverflow's küsimusi lugema, jäljendad neid alateadlikult küsimusi esitades, vältides seeläbi ajutuid küsimusi. Siin on mõned kõige olulisemad küsimused, millele küsimusi esitades tähelepanu pöörata: Esita küsimus, millele otsingumootor ei anna rahuldavat vastust (Google on vähemalt neli lehekülge vana). Esita küsimusi, mida sa ise lahendada ei suuda ja mida oled palju proovinud Püüa probleemi võimalikult selgelt kirjeldada: hea tüpograafia, kood, veateated, pildid jne Muuda oma küsimused teistele kasulikuks Küsimusele peaks olema kindel vastus ja subjektiivsust ei tohiks olla liiga palju Erinevad skeemid Paljudel kordadel loodame lahendust leida, kuid Stackoverflow's on sageli ootamatuid edusamme. Võid näha erinevaid lahendusi probleemile, sealhulgas isegi nende lahenduste võrdlusi. Oletame nüüd, et tahad teada, kuidas kutsuda Pythonis väliskäsku, näiteks ls -l, et printida artikkel kataloogi alla. Otsi Google'ist python call system käsk ja esimene on seotud küsimus stackoverflow's: välise käsu kutsumine Pythonis. (http://stackoverflow.com/questio ... l-command-in-python) (Google'i tehnilised probleemid, põhimõtteliselt kuvatakse stackoverflow'ga seotud probleemid). Selle küsimuse all võtab keegi kokku mitu viisi väliste käskude kutsumiseks: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() Ja iga meetod tutvustatakse ka, saad valida meetodi, mis sobib sinu rakenduse stsenaariumiga. Teine näide on küsimus: Kuidas kontrollida, kas fail eksisteerib Pythoniga? (http://stackoverflow.com/questio ... exists-using-python), mis kirjeldab erinevaid meetodeid Pythonis faili olemasolu kontrollimiseks. Tööriistade kasutamine On palju võimsaid tööriistu, mis aitavad meil paremini probleeme uurida – sa võid teada GDB silumistööriista, tead Pythoni Timeit Monitoring moodulit, aga sa ei tea tööriistu, mida sa ei tea. Paljudel kordadel, kui me esimest korda tööriista tunneme, tundub, et kohtume liiga hilja. Kuid tööriistad, mis sulle meeldivad, on alati nii raskesti kättesaadavad. Stackoverflow's võib igas küsimuse vastuses või kommentaaris olla häid tööriistu ning sul on alati võimalus leida parimad, mis on ridade taha jäänud. Siin on nimekiri mõnest suurepärasest tööriistast, mida leidsin: Truss/Strace: Jälgib süsteemikõnesid ja vastuvõetud signaale protsessi käivitamisel, Strace suudab jälgida protsessi poolt genereeritud süsteemikõnesid, sealhulgas parameetreid, tagastusväärtusi ja täitmisaega. (Küsimusest: Miks on stdin ridade lugemine C++-s palju aeglasem kui Python?) vprof: Visuaalne tööriist, mis analüüsib Python'i programmide omadusi, nagu käitusaeg, mälukasutus jne. (Küsimusest: Kuidas saab Pythonit profiilida?) Regex 101: Veebipõhine regulaaravaldise assistent, mis aitab sul mõista regulaaravaldiste tähendust, siluda regulaaravaldisi ja teha lihtsaid katseid. (Numbrist: Regulaarsete avaldiste õppimine) Siin on lihtne näide regex 101-st:
Mõtlemisprotsess Paljudel kordadel, kui satume probleemi ette, pole meil võimalust alustada ega tea, kuhu mõelda. Kuid stackoverflow'ga saame hõlpsasti leida konkreetse lahenduse ja mõnikord isegi teada, mida teised selle probleemiga silmitsi seistes arvavad. Oletame, et soovid kasutada dekoraatorit ülesande täitmiseks, lisades enne ja pärast allpool oleva say funktsiooni tagastatud stringi, ning mõtled näiteks defineerimisele nii. @makebold @makeitalic def say(): tagasi"Tere" Iga kõne vastab "Tere". Aga makeboldi ja makeitalic'i rakendamine on probleem. Stackoverflow's on suured härjad, kes ütlevad sulle vastuse otse ja annavad sulle lingi dekoraatorite dokumentatsioonile. Aga on ka Daniels, kes räägib sulle üksikasjalikult oma mõtlemisprotsessist ja arusaamast dekoraatoritest, et saaksid sügavalt mõista dekoraatori mehhanismi. Ülaltoodud küsimusele vastates on vastus, mis on saanud üle 3000 meeldimise, õpetades, kuidas probleemi samm-sammult lahendada. Esiteks, räägi meile, millised on pythoni funktsioonide omadused: Funktsioonid on objektid Funktsioonile saab määrata muutujale Funktsiooni saab defineerida teises funktsioonis Üks funktsioon võib tagastada teise funktsiooni Funktsioone saab parameetritena edasi anda Seejärel hakka selgitama, mis on dekoraator: see on tegelikult kapseldaja, mis võimaldab meil käivitada teist koodi enne ja pärast algse funktsiooni täitmist ilma seda muutmata. Lihtne dekoraatori prototüüp on käsitsi teostatud, millele järgneb dekoraatori süntaksi kasutuselevõtt Pythonis. Lõpuks on loetletud mõned dekoraatorite keerukad kasutusviisid, sealhulgas parameetrite edastamine dekoraatoritele. Loe kogu vastus läbi, sul on kindlasti sügavam arusaam sisekujundajast ja tead, kuidas kujundajat mõista. Nii saad ise otsustada, kuidas dekoraatoreid kasutada. Võimalikud pimedad kohad Kui sul pole küsimusi, võid aeg-ajalt külastada Stackoverflow'd, sirvida mõningaid küsimusi, kus on rohkem hääli, ja vaadata, mida teised on vastanud. Selles ulatuslikus teadmistepagas leiad tõenäoliselt mõned oma kognitiivsed pimedad kohad ja leiad sisu, millele sa pole kunagi tähelepanu pööranud. Leidsin mõned huvitavad küsimused, näiteks: Printimine terminalis värvidega Pythoniga? Mis on metaklass Pythonis? Mis on sinu kõige produktiivsem otsetee Vimiga? Olen siin koostanud nimekirja kvaliteetsetest Python küsimustest, mida sagedaseks kasutamiseks. Kahetsen, et kohtusime liiga hilja Kuidas leida StackOverflow, kaks soovitust: Kirjelda probleemi täpselt inglise keeles Googelda Kui sa pole esimene, kes tehnilise probleemiga kokku puutub, leiad tõenäoliselt sama või sarnase probleemi StackOverflow's. Kohtu varsti, armu Stackoverflow'sse varakult ja sa avastad, et elu on nii mugav.
|