Kaip programuotojas, jei nesate girdėję apie "Stackoverflow", geriau pagalvokite apie tai. Viena iš programavimo knygų, kurią programuotojams reikia skaityti labiausiai (tiesą sakant, pakanka palikti šią programavimo knygoms!). ):
(Pagrindinis puslapis Jun stipriai įterptas, aukščiau esantis paveikslėlis yra apgaulingas paveikslėlis, kai kurie internautai anksčiau to nesuprato, ypač sakyti) Tiems programuotojams, kurie dar neskaitė knygos, laikas ją įsigyti. Jei vis dar esate ant tvoros, peržiūrėkite šį straipsnį, kad sužinotumėte, kodėl negalite išsiversti be "StackOverflow". Išmintis užduoti klausimus Kai užduodate techninį klausimą, ar gausite naudingą atsakymą, dažnai priklauso nuo to, kaip klausiate ir kaip elgiatės. - Erikas S. Raymondas Kartais aiškus problemos, ypač techninės, aprašymas nėra toks paprastas, kaip atrodo. Klausimų uždavimas visada buvo mokslas, bet, deja, daugelis žmonių to nesuvokia arba neskiria tam pakankamai dėmesio. Arba kai kurie klausėjai visai neprašo pagalbos. Taigi rasime įvairiausių klausimų, į kuriuos žmonės negali atsakyti arba nenori atsakyti: Java regex problema? Kas yra SLA atsakymo laikas? Kuo skiriasi ATL klasės ir bendrosios klasės paveldėjimas? Siekiant išvengti pirmiau minėtos problemos uždarymo ar modifikavimo, įdėkite paveikslėlį čia patirti šią šūdą problemą:
Daugybę šių klausimų galite rasti neatsakytuose "SegmentFault" klausimuose, todėl daugelis žmonių akivaizdžiai neturi išminties ar požiūrio užduoti klausimus. Raymondas ir Rickas Moenai parašė klasikinį esė apie tai, kaip užduoti klausimus "Išmanusis kelias" (http://www.catb.org/~esr/faqs/smart-questions.html#translations), kuris buvo išverstas į įvairias kalbas ir yra plačiai platinamas ir kurį galima rasti kinų kalba čia. "Stackoverflow" ir "Segmentfalut" taip pat turi pasiūlymų, kaip užduoti klausimus: Pagalbos centras > klausimas Kaip paklausti Kaip užduoti gerą klausimą? Kokie klausimai laukiami "Stackoverflow" yra per daug klasikinių klausimų, todėl galime išmokti užduoti klausimus ir bendrauti su atsakymais. Kai įprasite skaityti klausimus stackoverflow, užduodami klausimus nesąmoningai imituosite juos, taip išvengdami klausimų be smegenų. Štai keletas svarbiausių klausimų, į kuriuos reikia atkreipti dėmesį užduodant klausimus: Užduokite klausimą, į kurį paieškos sistema neturi patenkinamo atsakymo ("Google" yra mažiausiai keturių puslapių senumo). Užduokite klausimus, kurių negalite išspręsti patys ir daug išbandėte Stenkitės kuo aiškiau apibūdinti problemą: gera tipografija, kodas, klaidų raginimai, paveikslėliai ir kt Padarykite savo klausimus naudingus kitiems Turėtų būti aiškus atsakymas į klausimą ir neturėtų būti per daug subjektyvumo Skirtingos schemos Daug kartų tikimės rasti sprendimą, tačiau "Stackoverflow" dažnai būna netikėtų laimėjimų. Galite pamatyti skirtingus problemos sprendimus, įskaitant net tų sprendimų palyginimus. Tarkime, kad dabar norite sužinoti, kaip iškviesti išorinę komandą Python, pvz., ls -l, kad atspausdintumėte straipsnį kataloge. "Google" python skambučių sistemos komanda, o pirmasis yra susijęs klausimas apie stackoverflow: išorinės komandos iškvietimas Python. (http://stackoverflow.com/questio ... l-command-in-python) (Google techninės problemos, iš esmės bus rodomos su stackoverflow susijusios problemos). Tada pagal šį klausimą kažkas apibendrina kelis būdus, kaip iškviesti išorines komandas: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() Taip pat pristatomas kiekvienas metodas, galite pasirinkti metodą, atitinkantį jūsų taikymo scenarijų. Kitas pavyzdys yra klausimas: kaip patikrinti, ar failas egzistuoja naudojant Python? (http://stackoverflow.com/questio ... exists-using-python), kuriame aprašomi skirtingi Python metodai, skirti patikrinti, ar nėra failo. Įrankių naudojimas Yra daug galingų įrankių, kurie gali padėti mums geriau ištirti problemas, galbūt žinote gdb derinimo įrankį, galbūt žinote python timeit stebėjimo modulį, bet nežinote įrankių, kurių nežinote. Daug kartų, kai pirmą kartą pažįstame įrankį, jaučiamės, kad susitiksime per vėlai. Tačiau jums patinkančių įrankių visada taip sunku rasti. "Stackoverflow" kiekviename klausime ar komentare gali būti gerų įrankių, ir visada turėsite galimybę rasti geriausius, kurie liko už eilučių. Štai keletas puikių įrankių, kuriuos radau, sąrašas: TRUSS/STRACE: seka sistemos skambučius ir gautus signalus Kai procesas vykdomas, STRACE gali sekti proceso sugeneruotus sistemos skambučius, įskaitant parametrus, grąžinimo reikšmes ir vykdymo laiką. (Iš klausimo: Kodėl C++ eilučių skaitymas iš stdin yra daug lėtesnis nei Python?) vprof: vaizdinis įrankis, analizuojantis Python programų charakteristikas, tokias kaip vykdymo laikas, atminties naudojimas ir kt. (Iš klausimo: Kaip galite profiliuoti Python?) Regex 101: internetinis reguliariųjų reiškinių asistentas, kuris gali padėti suprasti reguliariųjų reiškinių reikšmę, derinti reguliariąsias išraiškas ir atlikti paprastus eksperimentus. (Iš numerio: Reguliariųjų posakių mokymasis) Štai paprastas Regex 101 pavyzdys:
Mąstymo procesas Daug kartų, kai susiduriame su problema, neturime galimybės pradėti ir nežinome, kuria kryptimi mąstyti. Tačiau naudodami "stackoverflow" galime lengvai sužinoti konkretų sprendimą, o kartais net žinoti, ką galvoja kiti, susidūrę su šia problema. Tarkime, kad norite naudoti dekoratorių, kad atliktumėte užduotį, pridėdami prieš ir po eilutės, kurią grąžina toliau pateikta funkcija say, ir galvojate apie tokį tarimo apibrėžimą. @makebold @makeitalic def pasakyti (): grįžti"Sveiki" Kiekvienas skambutis atsako "Labas". Bet kaip įgyvendinti makebold ir makeitalic yra problema. "Stackoverflow" yra didelių bulių, kurie tiesiogiai pasakys jums atsakymą ir pateiks nuorodą į dekoratorių dokumentus. Tačiau yra ir Danielių, kurie išsamiai papasakos apie savo mąstymo procesą ir supratimą apie dekoratorius, kad galėtumėte giliai suprasti dekoratoriaus mechanizmą. Atsakant į aukščiau pateiktą klausimą, yra atsakymas, kuris sulaukė daugiau nei 3 000 patiktukų, nurodantis, kaip žingsnis po žingsnio išspręsti problemą. Pirmiausia papasakokite, kokios yra python funkcijų savybės: Funkcijos yra objektai Funkciją galima priskirti kintamajam Funkciją galima apibrėžti kitoje funkcijoje Viena funkcija gali grąžinti kitą funkciją Galite perduoti funkcijas kaip parametrus Tada pradėkite aiškinti, kas yra dekoratorius: iš tikrųjų tai yra inkapsuliatorius, leidžiantis vykdyti kitą kodą prieš ir po pradinės funkcijos vykdymo jos nekeičiant. Paprastas dekoratoriaus prototipas įgyvendinamas rankomis, o po to įdiegiama dekoratoriaus sintaksė Python. Galiausiai išvardyti kai kurie išplėstiniai dekoratorių naudojimo būdai, įskaitant parametrų perdavimą dekoratoriams. Perskaitykite visą atsakymą, tikrai turėsite gilesnį supratimą apie dekoratorių ir žinosite mąstymo procesą, kaip suprasti dekoratorių. Tokiu būdu, eidami šiuo minties keliu, jūs patys galite nuspręsti, kaip naudotis dekoratoriais. Galimos aklosios zonos Kai neturite klausimų, taip pat retkarčiais galite apsilankyti stackoverflow, naršyti kai kuriuos klausimus su daugiau balsų ir pamatyti, ką atsakė kiti. Šioje didžiulėje žinių bazėje greičiausiai rasite keletą savo kognityvinių aklųjų zonų ir atrasite turinį, į kurį niekada nekreipėte dėmesio. Radau keletą įdomių klausimų, tokių kaip: Spausdinti terminale su spalvomis naudojant Python? Kas yra metaklasė Python? Koks yra jūsų produktyviausias spartusis kelias su Vim? Čia sudariau aukštos kokybės Python klausimų sąrašą, kad galėčiau dažnai naudotis. Apgailestauju, kad susitikome per vėlai Taigi, kaip rasti "StackOverflow", du pasiūlymai: Tiksliai apibūdinkite problemą anglų kalba "Google" Kol nesate pirmas asmuo, susidūręs su technine problema, tikriausiai rasite tą pačią ar panašią problemą "StackOverflow". Netrukus susitikite, anksti įsimylėkite Stackoverflow ir pamatysite, kad gyvenimas yra toks patogus.
|