ProHoster > ΠΠ»ΠΎΠ³ > Kev tswj hwm > Ua raws li kev txheeb xyuas zoo li qub rau hauv cov txheej txheem, tsis yog nrhiav cov kab nrog nws
Ua raws li kev txheeb xyuas zoo li qub rau hauv cov txheej txheem, tsis yog nrhiav cov kab nrog nws
Kuv tau txais kev tshoov siab los sau cov kab lus no los ntawm ntau cov ntaub ntawv ntawm kev tshuaj xyuas zoo li qub uas tau nce zuj zus tuaj. Ua ntej, qhov no PVS-studio blog, uas nquag txhawb nqa nws tus kheej ntawm Habre nrog kev tshuaj xyuas ntawm qhov tsis raug pom los ntawm lawv cov cuab yeej hauv cov haujlwm qhib. PVS-studio nyuam qhuav ua tiav Java txhawb, thiab, tau kawg, cov neeg tsim khoom ntawm IntelliJ IDEA, uas nws tus kws tshuaj ntsuam ua ke yog qhov zoo tshaj plaws rau Java hnub no, nyob tsis tau.
Thaum nyeem cov kev txheeb xyuas no, ib tus tau txais kev xav tias peb tab tom tham txog cov khawv koob elixir: nias lub pob, thiab ntawm no nws yog - daim ntawv teev cov tsis xws luag nyob rau hauv pem hauv ntej ntawm koj ob lub qhov muag. Nws zoo nkaus li tias raws li cov kws tshuaj ntsuam xyuas txhim kho, yuav muaj cov kab ntau thiab ntau dua, thiab cov khoom lag luam luam tawm los ntawm cov neeg hlau no yuav zoo dua thiab zoo dua, tsis muaj kev siv zog ntawm peb.
Tab sis tsis muaj cov khawv koob elixirs. Kuv xav tham txog yam uas feem ntau tsis tau tham hauv cov lus xws li "Ntawm no yog yam peb cov neeg hlau tuaj yeem nrhiav tau": cov neeg soj ntsuam tsis tuaj yeem ua li cas, lawv lub luag haujlwm thiab qhov chaw yog dab tsi hauv cov txheej txheem xa software, thiab yuav siv lawv li cas kom raug.
Cov piv txwv ntawm qhov tsis xws luag tuaj yeem pom los ntawm cov kws tshuaj ntsuam xyuas tau zoo, tab sis peb yuav tsum tsis txhob hnov ββββqab tias cov piv txwv no tau pom los ntawm kev txheeb xyuas cov txheej txheem loj ntawm cov codebases. Los ntawm tib txoj cai, crackers uas muaj peev xwm sim ob peb lo lus zais yooj yim ntawm ntau tus account thaum kawg pom cov nyiaj uas muaj tus password yooj yim.
Qhov no puas txhais tau tias yuav tsum tsis txhob siv cov tshuaj zoo li qub? Tau kawg tsis! Thiab raws nraim tib yam vim li cas nws tsim nyog kuaj xyuas txhua tus password tshiab kom nkag mus rau hauv cov npe nres ntawm "yooj yim" passwords.
Kev soj ntsuam zoo li qub yog ntau dua li nrhiav cov kab
Qhov tseeb, cov teeb meem daws tau los ntawm kev txheeb xyuas yog qhov dav dua. Tom qab tag nrho, feem ntau, kev soj ntsuam zoo li qub yog ib qho kev kuaj xyuas ntawm cov lej uas tau ua ua ntej lawv pib. Nov yog qee yam uas koj tuaj yeem ua:
Yam twg ntawm cov kev txheeb xyuas zoo li qub yuav tsum tau siv hauv koj qhov project? Tau kawg, qhov ntau, qhov zoo dua! Qhov tseem ceeb tshaj plaws yog siv nws kom raug, uas yuav tau tham ntxiv.
Kev xa cov raj xa dej raws li kev lim dej ntau theem thiab kev soj ntsuam zoo li qub raws li nws thawj cascade
Cov lus piv txwv classic rau kev sib koom ua ke tsis tu ncua yog cov raj xa dej (pipeline), los ntawm kev hloov pauv - los ntawm kev hloov cov cai rau kev xa mus rau ntau lawm. Cov txheej txheem ua ntu zus ntawm cov kav dej no zoo li no:
Raws li koj paub, ntxuav cov lim dej yog tsim los ntawm txoj hauv kev uas txhua qhov tom ntej no tuaj yeem lim tawm ib feem me me ntawm cov kab mob. Nyob rau tib lub sijhawm, coarser purification cascades muaj kev nkag siab dua thiab tus nqi qis dua. Hauv peb qhov piv txwv, qhov no txhais tau hais tias cov khoom nkag tau zoo ntawm lub qhov rooj nrawm dua, yuav tsum muaj kev siv zog tsawg dua los pib, thiab lawv tus kheej ntau dua unpretentious hauv kev ua haujlwm - thiab qhov no yog raws nraim qhov lawv tau ua. Lub luag hauj lwm ntawm kev soj ntsuam zoo li qub, uas, raws li peb tam sim no nkag siab, muaj peev xwm ntawm cov nroj tsuag tawm tsuas yog qhov tsis zoo tshaj plaws, yog lub luag haujlwm ntawm grating-" av nkos" thaum pib ntawm lub lim dej cascade.
Kev tsom xam los ntawm nws tus kheej tsis txhim kho qhov zoo ntawm cov khoom kawg, ib yam li "cov av nkos" tsis ua kom dej haus. Thiab tseem, nyob rau hauv kev sib piv nrog rau lwm cov ntsiab lus ntawm lub conveyor, nws qhov tseem ceeb yog pom tseeb. Txawm hais tias nyob rau hauv ntau theem lim, cov theem tso zis muaj peev xwm ntawm kev ntes txhua yam tib yam li cov theem nkag, nws yog qhov tseeb tias qhov kev sim ua kom tau los ntawm tsuas yog cov theem purification zoo, tsis muaj cov theem nkag, yuav ua rau.
Lub hom phiaj ntawm "cov av nkos" yog txhawm rau tshem tawm cov cascades tom ntej los ntawm kev ntes qhov tsis xws luag. Piv txwv li, yam tsawg kawg nkaus, tus kws tshuaj xyuas cov cai yuav tsum tsis txhob cuam tshuam los ntawm cov txheej txheem tsis raug thiab ua txhaum cai ntawm cov qauv tsim coding (xws li cov kab lus ntxiv lossis cov ceg ntoo sib sib zog nqus heev). Kab laum zoo li NPE yuav tsum raug ntes los ntawm kev sim hauv chav tsev, tab sis yog tias txawm tias ua ntej qhov kev ntsuam xyuas tus ntsuas ntsuas qhia rau peb tias cov kab laum yuav tsum tsis txhob tshwm sim, qhov no yuav ua rau nws kho sai.
Kuv xav tias tam sim no paub meej tias vim li cas qhov kev soj ntsuam zoo li qub tsis txhim kho qhov zoo ntawm cov khoom yog tias nws siv qee zaus, thiab yuav tsum tau siv tas li los lim tawm cov kev hloov pauv nrog qhov tsis zoo tag nrho. Nug yog tias siv lub ntsuas ntsuas zoo li qub yuav txhim kho qhov zoo ntawm koj cov khoom yog qhov sib npaug ntawm kev nug "Yuav ua li cas haus dej zoo los ntawm lub pas dej qias neeg puas zoo dua yog tias nws dhau los ntawm lub colander?"
Kev ua tiav hauv qhov project qub txeeg qub teg
Ib lo lus nug tseem ceeb: yuav ua li cas qhia qhov kev txheeb xyuas zoo li qub rau hauv cov txheej txheem ntawm kev sib koom ua ke tas li raws li "qhov rooj zoo"? Nyob rau hauv cov ntaub ntawv ntawm kev ntsuam xyuas tsis siv neeg, txhua yam yog pom tseeb: muaj ib tug txheej ntawm kev xeem, tsis ua hauj lwm ntawm ib tug ntawm lawv yog ib tug txaus vim li cas rau ntseeg hais tias lub rooj sib txoos tsis dhau lub rooj vag zoo. Ib qho kev sim rau nruab ib lub rooj vag nyob rau hauv tib txoj kev raws li cov txiaj ntsig ntawm kev soj ntsuam zoo li qub tsis ua haujlwm: muaj ntau ntau cov lus ceeb toom hauv cov cai qub, koj tsis xav kom tsis quav ntsej tag nrho, tab sis nws tseem tsis tuaj yeem txwv tsis pub xa cov khoom xa tuaj. khoom tsuas yog vim nws muaj cov lus ceeb toom ntsuas.
Thaum siv thawj zaug, tus ntsuas ntsuas tau tsim ntau cov lus ceeb toom ntawm txhua qhov haujlwm, feem ntau ntawm cov khoom tsis cuam tshuam txog kev ua haujlwm raug ntawm cov khoom. Nws tsis tuaj yeem kho tag nrho cov lus no ib zaug, thiab ntau ntawm lawv tsis tsim nyog. Tom qab tag nrho, peb paub tias peb cov khoom ua haujlwm tag nrho, txawm tias ua ntej kev taw qhia txog kev txheeb xyuas zoo li qub!
Raws li qhov tshwm sim, ntau tus neeg txwv lawv tus kheej rau kev siv cov kev tshawb fawb zoo li qub, lossis siv nws tsuas yog hauv kev qhia hom, thaum daim ntawv tshaj tawm kev soj ntsuam tsuas yog muab tawm thaum lub sijhawm tsim. Qhov no sib npaug rau qhov tsis muaj kev tshuaj xyuas, vim tias yog tias peb twb tau ceeb toom ntau, ces qhov tshwm sim ntawm lwm qhov (tsis muaj teeb meem loj npaum li cas) thaum hloov cov cai mus tsis pom.
Cov hauv qab no ntawm kev qhia cov rooj vag zoo yog paub:
Teem ib qho kev txwv rau tag nrho cov lus ceeb toom, lossis tus naj npawb ntawm cov lus ceeb toom muab faib los ntawm cov kab ntawm cov lej. Qhov no tsis ua hauj lwm zoo, vim hais tias xws li lub rooj vag ywj pheej hla kev hloov pauv nrog cov tsis xws luag tshiab kom txog rau thaum lawv cov kev txwv dhau lawm.
Kho, ntawm qee qhov taw tes, tag nrho cov lus ceeb toom qub hauv cov cai raws li tsis quav ntsej, thiab ua tsis tiav qhov tsim thaum muaj kev ceeb toom tshiab. Qhov kev ua haujlwm no yog muab los ntawm PVS-studio thiab qee qhov kev pabcuam online, xws li Codacy. Kuv tsis muaj sijhawm los ua haujlwm hauv PVS-studio, raws li kuv qhov kev paub dhau los nrog Codacy, lawv qhov teeb meem tseem ceeb yog qhov txhais ntawm qhov "laus" thiab qhov yuam kev "tshiab" yog qhov nyuaj algorithm uas tsis yog. ib txwm ua haujlwm kom raug, tshwj xeeb tshaj yog tias cov ntaub ntawv raug hloov kho lossis hloov npe. Hauv kuv lub cim xeeb, Codacy tuaj yeem hla cov lus ceeb toom tshiab hauv kev thov rub, thiab tib lub sijhawm tsis txhob hla qhov kev thov rub vim cov lus ceeb toom uas tsis cuam tshuam txog kev hloov pauv ntawm cov cai ntawm PR no.
Hauv kuv lub tswv yim, qhov kev daws teeb meem zoo tshaj plaws tau piav qhia hauv phau ntawv Kev Xa Xa Mus Ntxiv "ratcheting" method. Lub tswv yim tseem ceeb yog tias ib qho cuab yeej ntawm txhua qhov kev tso tawm yog tus naj npawb ntawm cov lus ceeb toom zoo li qub, thiab tsuas yog kev hloov pauv uas tsis ua rau tag nrho cov lus ceeb toom tau tso cai.
Tam sim no txhua qhov kev thov rub tawm ntawm kev tsim sib piv cov xov tooj ceeb toom nws tau txais nrog tus lej hauv kev tso tawm tam sim no. Yog tias PR ua rau muaj qhov nce ntawm tus lej no, ces tus lej tsis dhau lub rooj vag zoo hauv kev tshuaj xyuas zoo li qub. Yog tias tus lej ceeb toom txo qis lossis tsis hloov, ces nws dhau mus.
Ntawm qhov kev tso tawm tom ntej no, cov lus ceeb toom rov qab yuav raug sau rov qab mus rau qhov tso tawm metadata.
Yog li me ntsis los ntawm me ntsis, tab sis tsis tu ncua (raws li nrog ratchet), tus naj npawb ntawm cov lus ceeb toom yuav zoo li xoom. Tau kawg, lub kaw lus tuaj yeem dag los ntawm kev qhia cov lus ceeb toom tshiab, tab sis kho lwm tus. Qhov no yog ib txwm, vim hais tias nyob rau hauv lub sij hawm ntev nws muab qhov tshwm sim: cov lus ceeb toom yog tsau, raws li txoj cai, tsis yog ib tug los ntawm ib tug, tab sis tam sim ntawd los ntawm ib pab pawg neeg ntawm tej yam, thiab tag nrho cov yooj yim tshem tawm cov lus ceeb toom yog tshem tawm sai sai.
Daim duab no qhia tag nrho cov lus ceeb toom Checkstyle rau rau lub hlis ntawm kev ua haujlwm ntawm xws li "ratchet" rau ib qho ntawm peb cov haujlwm qhib. Tus naj npawb ntawm cov lus ceeb toom tau txo qis los ntawm qhov kev txiav txim ntawm qhov loj, thiab qhov no tshwm sim ib txwm muaj, nyob rau tib lub sijhawm nrog kev txhim kho ntawm cov khoom!