Mibvunzo mishanu pamusoro pekugadzirisa mutauro dhizaini

Mibvunzo mishanu pamusoro pekugadzirisa mutauro dhizaini

Kutungamirira Philosofi

1. Kuronga mitauro yevanhu

Mitauro yekuronga ndiyo nzira iyo vanhu vanotaura nemakomputa. Iyo komputa ichafara kutaura chero mutauro usiri wakajeka. Chikonzero isu tine mitauro yepamusoro imhaka yekuti vanhu havagone mutauro wemashini. Chinangwa chemitauro yekuronga ndechekudzivirira hurombo hwedu, husina kusimba huropi hwevanhu kuti husaremerwe nezvakawanda.

Vagadziri vezvivakwa vanoziva kuti mamwe matambudziko ekugadzira akawandisa kupfuura mamwe. Mamwe ematambudziko akajeka uye abstract design magadzirirwo emabhiriji. Muchiitiko ichi, basa rako nderekuvhara chinhambwe chinodiwa nezvinhu zvishoma sezvinobvira. Kune imwe mugumo we spectrum ndiyo chigaro chekugadzira. Vagadziri vezvigaro vanofanira kupedza nguva yavo vachifunga nezvemagaro evanhu.

Kugadzirwa kweSoftware kune musiyano wakafanana. Kugadzira maalgorithms ekufambisa data kuburikidza netiweki idambudziko rakanaka, risinganzwisisike, sekugadzira mabhiriji. Ipo kugadzira mitauro yekuronga kwakafanana nekugadzira macheya: iwe unofanirwa kubata nekushaya simba kwevanhu.

Izvi zvakaoma kuti vazhinji vedu tizvizive. Kugadzira anoyevedza masisitimu emasvomhu zvinonzwika zvakanyanya kukwezva kune vazhinji vedu pane kunamatira kune kusimba kwevanhu. Basa rekunaka kwemasvomhu nderekuti imwe nhanho yekunaka inoita kuti zvirongwa zvive nyore kunzwisisa. Asi hazvisi zvese zvekunaka.

Uye kana ndichiti mitauro inofanirwa kugadzirwa kuti ienderane nekushaya simba kwevanhu, handireve kuti mitauro inofanirwa kugadzirirwa vakaipa vanogadzira zvirongwa. Muchokwadi, unofanira kunge uchigadzira software yevanonyanya kugadzira mapurogiramu, asi kunyangwe vanogadzira mapurogiramu epamusoro vane zvavanogumira. Ini handifunge kuti chero munhu anganakidzwa nekuronga mumutauro umo mavhezheni ese airatidzwa nebhii rekuti "x" rine manyorerwo akazara.

2. Gadzira iwe neshamwari dzako

Kana iwe ukatarisa nhoroondo yemitauro yekuronga, yakawanda yemitauro yakanakisa yakagadzirwa kuti ishandiswe nevanyori vayo, uye yakawanda yakaipisisa yakagadzirirwa kuti vamwe vanhu vashandise.

Kana mitauro yakagadzirirwa vamwe vanhu, inogara iri boka revanhu: vanhu havana kungwara sevagadziri vemutauro. Iyi ndiyo nzira yaunowana nayo rurimi runotaura pasi kwauri. Cobol ndiyo muenzaniso wakakurumbira, asi mitauro mizhinji yakazadzwa nemweya uyu.

Hazvinei nechokuita kuti mutauro wacho wakakwirira sei. C yakaderera nhanho, asi yakagadzirwa kuti ishandiswe nevanyori vayo, ndosaka matsotsi achiida.

Nharo yekugadzira mitauro yevakaipa programmers ndeyekuti kune vakawanda vakaipa vanogadzira pane vakanaka. Zvichida izvi ndizvo. Asi iyi diki nhamba yevakanaka programmer inonyora zvisingaite software yakawanda.

Mubvunzo wangu ndewekuti, iwe unogadzira sei mutauro unofadza kune vakanyanya hackers? Zvinoratidzika kwandiri kuti mubvunzo uyu wakafanana nemubvunzo wekugadzira mutauro wakanaka wepurogiramu?, Asi kunyange kana zvisiri, inenge iri mubvunzo unonakidza.

3. Ipa mugadziri kudzora zvakanyanya sezvinobvira

Mitauro mizhinji (kunyanya iyo yakagadzirirwa vamwe vanhu) inoita senge nannies: vanoedza kukuyambira kubva pazvinhu zvavanofunga kuti hazvizobatsiri kwauri. Ini ndinotora maonero akasiyana: ipa iyo programmer kutonga kwakawanda sezvaunokwanisa.

Pandakatanga kudzidza Lisp, chandainyanya kufarira ndechekuti taitaura takaenzana. Mune mimwe mitauro yandakanga ndadzidza panguva iyoyo, maiva nomutauro, uye purogiramu yangu yaiva mumutauro iwoyo, uye yakanga iripo yakaparadzana. Asi muLisp, mafunctions uye macros andakanyora aive mamwewo ayo mutauro pachawo wakanyorwa. Ndaigona kunyorazve mutauro wacho kana ndaida. Yakanga iine chikumbiro chakafanana neyakavhurika sosi software.

4. Brevity ihanzvadzi yetarenda

Brevity inoderedzwa uye inotozvidzwa. Asi kana iwe ukatarisa mukati memoyo yevanobira, uchaona kuti ivo vanoda chaizvo kupfupika. Kangani pawakanzwa matsotsi achitaura nerudo nezve sei, mukati, toti, APL, vanogona kuita zvinoshamisa nemitsetse miviri yekodhi? Ndinofungidzira vanhu vakangwara chaizvo vanofarira kuterera izvi.

Ndinotenda kuti chero chinhu chinoita kuti mapurogiramu ave mapfupi chinhu chakanaka. Panofanira kuva nemabasa akawanda eraibhurari, zvese zvingave zviri pachena zvinofanira kuva zvakadaro; syntax inofanira kuva yakapfupika; kunyange mazita emasangano anofanira kuva mapfupi.

Uye kwete mapurogiramu chete anofanira kunge ari mapfupi. Manuals anofanirawo kuva mapfupi. Chikamu chakanaka chezvinyorwa chizere netsananguro, zvidziviriro, yambiro uye zviitiko zvakakosha. Kana uchida kupfupisa bhuku rekushandisa, sarudzo yakanaka ndeyekugadzirisa mutauro unoda tsananguro yakawanda.

5. Ziva kuti kubira chii

Vanhu vazhinji vangade kubira kuve masvomhu, kana chimwe chinhu chakafanana nesainzi. Ini ndinofunga kubira kwakafanana nekuvaka. Architecture inoenderana nefizikisi pakuti mugadziri wemapurani anoda kugadzira chivakwa chisingaputsike, asi chinangwa chaicho chemugadziri wekuvaka ndechekugadzira chivakwa chikuru, kwete kuita zviwanikwa mumunda we statics.

Izvo zvinoda hackers kugadzira mapurogiramu makuru. Uye ndinofunga kuti, kana mumifungo yedu pachedu, tinofanira kuyeuka kuti kunyora zvirongwa zvikuru chinhu chinoshamisa, kunyange kana basa iroro risingashandurike nyore nyore mumari yehungwaru yakajairika yemapepa esainzi. Kubva pamaonero ehungwaru, zvakangokoshawo kugadzira mutauro unozodiwa nevagadziri vemapurogiramu sezvazviri kugadzira unotyisa une pfungwa yaunogona kutsikisa bepa nezvayo.

Open Issues

1. Kuronga sei maraibhurari makuru?

Maraibhurari ari kuita chikamu chakakosha chemitauro yekuronga. Dzinowedzera kukura zvokuti zvinogona kuva nengozi. Kana zvichitora nguva yakareba kuti uwane basa muraibhurari inoita zvaunoda pane kunyora basa iroro iwe pachako, ipapo code yose haiiti chimwe chinhu kunze kwekuita kuti bhuku rako riwedzere. (The Symbolics manuals aiva muenzaniso weizvi.) Saka tichafanira kugadzirisa dambudziko resangano reraibhurari. Zvakanaka, zvigadzirire kuitira kuti mugadziri agone kufungidzira kuti ndeipi basa reraibhurari rakakodzera.

2. Vanhu vanotya chaizvo chirevo chechivakashure?

Iri idambudziko rakavhurika mupfungwa yekuti ndanga ndichifunga nezvaro kwemakore akati wandei uye handisati ndaziva mhinduro. Prefix syntax inoita seyakasikwa zvachose kwandiri, kunze kwekushandisa kwayo mumasvomhu. Asi zvingava kuti zvakawanda zvekusafarirwa kwaLisp zvinongokonzerwa nezwi risingazivikanwi... Kana zvakakodzera kuita chero chinhu pamusoro pazvo, kana chiri chokwadi, imwe nyaya.

3. Chii chaunoda kune server software?

Ini ndinofunga manyorerwo mazhinji achanyorwa mumakore makumi maviri anotevera achange ari mawebhu application, mupfungwa yekuti zvirongwa zvichagara pane sevha uye nekutaurirana newe kuburikidza newebhu browser. Uye kunyora zvikumbiro zvakadaro tinoda zvinhu zvitsva.

Chimwe chezvinhu izvozvo kutsigirwa kwenzira nyowani yekuburitsa server application. Panzvimbo yeimwe kana maviri makuru ekuburitswa pagore, sedesktop software, server software ichaburitswa mune dzakatevedzana shanduko diki. Unogona kuva nezvishanu kana gumi zvinoburitswa pazuva. Uye munhu wese achagara aine yazvino vhezheni.

Iwe unoziva kugadzira zvirongwa kuti zvichengeteke? Server software inofanirwa kugadzirwa kuti ichinje. Iwe unofanirwa kukwanisa kuishandura zviri nyore, kana kuti uzive kuti shanduko diki inorevei uye zvakakosha.

Chimwe chinhu chinogona kubatsira muserver software ndechekuti, kamwe kamwe, kuenderera kwekutumira. Muwebhu application unogona kushandisa chimwe chinhu chakadai CPSkuti uwane mhedzisiro yemaitiro munyika isina nyika yewebhu zvikamu. Kuve nekuenderera mberi kwekupa kunogona kuve kwakakosha kana chimiro chisina kudhura zvakanyanya.

4. Ndezvipi zvitsva zvasara zvichaonekwa?

Ini handina chokwadi chekuti tariro iyoyo ine musoro sei, asi ini pachangu ndingade chaizvo kuwana imwe nyowani yekubvisa - chimwe chinhu chinogona kuve chine musoro semabasa ekutanga-kirasi kana kudzokorora kana angangoita default paramita. Pamwe ichi chiroto chisingagoneki. Zvinhu zvakadai hazviwanzowaniki. Asi handirasi tariro.

Zvishoma zvakavanzika zvakavanzika

1. Unogona kushandisa chero mutauro waunoda

Pakutanga, kusikwa kwemaapplication kwaireva kusikwa kwedesktop software. Uye mudesktop software pane kurerekera kukuru pakunyora maapplication mumutauro mumwechete neiyo inoshanda sisitimu. Saka makore gumi apfuura, kunyora software kazhinji kwaireva kunyora software muC. Pakupedzisira, tsika yacho yakashanduka: zvikumbiro hazvifanirwe kunyorwa mumitauro isina kujairika. Uye tsika iyi yakashanduka kwenguva yakareba zvekuti vanhu vasiri tekinoroji semamaneja nemaventure capitalist vakazvidzidzawo.

Server software inoparadza iyi modhi zvachose. Ne server software unogona kushandisa chero mutauro waunoda. Anenge hapana anonzwisisa izvi parizvino (kunyanya mamaneja uye maventure capitalists). Asi mamwe matsotsi anonzwisisa izvi, ndosaka tichinzwa nezvemitauro yeindy sePerl nePython. Hatinzwe nezvePerl nePython nekuti vanhu vanovashandisa kunyora maWindows application.

Izvi zvinorevei kwatiri isu vanhu vanofarira chirongwa chekugadzira mutauro, kuti kune vateereri vanogona kuita basa redu.

2. Kumhanya kunobva kune profilers

Vagadziri vemitauro, kana vangangoita mitauro, vanofarira kunyora mabhatani anoburitsa kodhi inokurumidza. Asi ini ndinofunga kuti handizvo zvinoita kuti mitauro ikurumidze kune vashandisi. Knuth akacherechedza kare kuti kumhanya kunotsamira pamabhodhoro mashoma. Uye chero munhu akaedza kukurumidzira chirongwa anoziva kuti haugone kufungidzira kuti bhodhoro riri papi. Profiler ndiyo mhinduro.

Vagadziri vemitauro vari kugadzirisa dambudziko risiri iro. Vashandisi havadi mabhenji kuti vamhanye nekukasira. Vanoda mutauro unogona kuratidza zvikamu zvepurogiramu yavo zvinoda kunyorwazve. Panguva ino, kukurumidza kunodiwa mukuita. Saka pamwe zvingava nani kana vashandisi vemutauro vakapedza hafu yenguva yavanopedza vachikwenenzvera muunganidzi uye kuipedza pakunyora yakanaka profiler.

3. Unoda app inoita kuti mutauro wako ushanduke

Ichi chingave chisiri chokwadi chekupedzisira, asi zvinoita sekunge mitauro yakanakisa yakashanduka pamwe chete nemashandisirwo ayo akashandiswa. C yakanyorwa nevanhu vaida masystem programming. Lisp yakagadzirwa muchidimbu kuti isiyane, uye McCarthy aive nechido chekutanga zvekuti akatotanga kunyora zvirongwa zvekusiyanisa mupepa rekutanga reLisp muna 1960.

Izvi zvakanyanya kunaka kana application yako ikagadzirisa mamwe matambudziko matsva. Izvi zvinosundira mutauro wako kuti uve nezvinhu zvitsva zvinodikanwa nevagadziri vepurogiramu. Ini pachangu, ini ndiri kufarira kunyora mutauro unozove wakanaka kune server application.

[Panguva yenhaurirano, Guy Steele akataurawo pfungwa iyi, achiwedzera kuti chikumbiro hachifanire kuve nekunyora compiler yemutauro wako, kunze kwekunge mutauro wako wakagadzirirwa kunyora ma compiler.]

4. Mutauro unofanirwa kuve wakakodzera kunyora mapurogiramu enguva imwe chete.

Iwe unoziva zvinorehwa ne-one-pfuti chirongwa: ndipo paunoda kukurumidza kugadzirisa rimwe dambudziko rakaderera. Ini ndinotenda kuti kana ukatarisa-tarisa, uchawana akawanda akakomba mapurogiramu akatanga seamwe-offs. Handingashamisike kana mazhinji emapurogiramu akatanga seamwe-offs. Nokudaro, kana iwe uchida kugadzira mutauro unozove wakakodzera kunyora software muhuwandu, saka inofanirawo kuva yakakodzera kunyora mapurogiramu ega, nokuti iyi ndiyo nhanho yekutanga yezvirongwa zvakawanda.

5. Syntax ine hukama nemantiki

Zvinogara zvichitendwa kuti syntax uye semantics zvinhu zvakasiyana kwazvo. Izvi zvingaita sezvinotyisa, asi hazvisizvo. Ini ndinofunga zvaunoda kuzadzisa muchirongwa chako zvine chekuita nematauriro aunoita.

Ini nguva pfupi yadarika ndakataura naRobert Morris, uye akacherekedza kuti opareta kuwandisa ibasa rakakura mukukunda kwemitauro ine infix syntax. Mumitauro ine prefix syntax, chero basa raunotsanangura rinenge riri mushandisi. Kana iwe uchida kuwedzera rudzi rutsva rwenhamba yawakagadzira, unogona kungotsanangura basa idzva rekuwedzera. Kana iwe ukaita izvi mumutauro une infix syntax, uchaona kuti pane musiyano mukuru pakati pekushandisa akawandisa opareta uye kudaidza basa.

Mazano anodzoka nekufamba kwenguva

1. Mitauro mitsva yepurogiramu

Tichitarisa kumashure kuma1970, zvaive mufashoni kugadzira mitauro mitsva yekuronga. Izvi hazvisizvo zvino. Asi ini ndinotenda kuti server software ichadzosa zvakare fashoni yekugadzira mitauro mitsva. Nesevha software iwe unogona kushandisa chero mutauro waunoda, saka kana mumwe munhu akagadzira mutauro unoratidzika kunge uri nani pane wasara, pachava nevanhu vanozosarudza kuushandisa.

2. Kugovana nguva

Richard Kelsey akauya nepfungwa iyi iyo nguva yasvika zvakare uye ndinoitsigira zvizere. Kufungidzira kwangu (uye neMicrosoft futi) ndeyekuti komputa yakawanda ichabva padesktop kuenda kumaseva ari kure. Mune mamwe mazwi, kugovana nguva kwadzoka. Ndinofunga kuti izvi zvichada kutsigirwa pamwero wemutauro. Semuyenzaniso, Richard naJonathan Reeves vakaita basa rakawanda kuita hurongwa hwekuronga muChikamu 48.

3. Kubudirira

Munguva pfupi yapfuura zvaiita sekuti makomputa akange atomhanya zvakakwana. Tiri kunzwa zvakanyanya nezve bytecode, izvo zviri nani kwandiri zvinoreva kuti isu tine simba rakachengetedzwa. Asi ini ndinofunga kuti neserver software, isu hatina. Mumwe munhu achafanirwa kubhadhara maseva anomhanyisa software, uye nhamba yevashandisi iyo server inogona kutsigira pamushini wega wega ichave inoparadzanisa mari yavo yemari.

Ini ndinofunga kunyatsoita zvine basa, zvirinani mukombuta mabhodhoro. Izvi zvichanyanya kukosha kune I/O mashandiro, nekuti maseva maapplication anoita akawanda maoperation akadaro.

Pakupedzisira, zvinogona kuitika kuti bytecode haisi mhinduro. Zuva neMicrosoft zvinoita kunge zviri kuenda kumusoro kumunda webytecode panguva ino. Asi ivo vanoita izvi nekuti bytecode inzvimbo iri nyore yekuzvimisikidza mukuita, kwete nekuti bytecode pachayo ipfungwa yakanaka. Zvinogona kuitika kuti hondo yese iyi haizoonekwe. Zvingava zvinosetsa.

Misungo nemisungo

1. Vatengi

Uku kungofungidzira, asi ndezvekuti chete maapplication anozobatsira ndeaya ari akazara server-parutivi. Kugadzira software inoshanda nefungidziro yekuti munhu wese achava nemutengi kwakafanana nekugadzira nzanga yakavakirwa pafungidziro yekuti munhu wese achave akatendeseka. Zvingave zviri nyore, asi iwe unofanirwa kufungidzira kuti hazvife zvakaitika.

Ini ndinofunga kuchave nekukasira kuwedzera kwewebhu-inogonesa zvishandiso, uye isu tinogona kufunga kuti ivo vachatsigira basic html uye mafomu. Iwe une browser pafoni yako here? Ko PalmPilot yako ichava nefoni here? Ko blackberry yako ichange iine skrini hombe here? Iwe uchakwanisa kuwana Indaneti kubva kune gameboy yako? Kubva pawachi yako? Handizive. Uye ini handizofanirwa kuona kana ndichibheja kuti zvese zvichange zviri pane server. Zvinongonyanya kuvimbika kuve nehuropi hwese pane server. .

2. Kurongwa kwechinangwa

Ndinoziva kuti ichi chirevo chinopokana, asi handifunge kuti OOP yakakosha. Ini ndinofunga iyi paradigm yakakodzera kune chaiwo maapplication ayo anoda chaiwo data zvimiro, senge mahwindo masisitimu, simulations, CAD masisitimu. Asi ini handinzwisise kuti sei ichifanira kukodzera zvirongwa zvese.

Ndinofunga kuti vanhu vari mumakambani makuru vanoda OOP, muchidimbu, nokuti inoita zvinhu zvakawanda zvinoita sebasa. Chii chingangomiririrwa se, toti, runyoro rwenhamba, zvino inogona kumiririrwa sekirasi ine marudzi ese echikafu, ruzha uye ruzha.

Chimwe chinokwezva chimiro cheOOP ndechekuti nzira dzinokupa iwe mamwe maitiro ekutanga-kirasi mabasa. Asi idzi hadzisi nhau dzeLisp programmers. Paunenge uine echokwadi ekutanga-kirasi mabasa, unogona kungoashandisa chero nzira inokodzera basa riripo, pane kusundira zvese mu boilerplate yemakirasi uye nzira.

Ini ndinofunga kuti izvi zvinorevei pakugadzirwa kwemutauro ndezvekuti haufanirwe kunyudza OOP zvakadzika mazviri. Pamwe mhinduro ndeyekupa zvakawanda zvakajairwa, zvinhu zvehwaro, uye rega vanhu vagadzire chero masystem semaraibhurari.

3. Dhizaini nekomiti

Kana mutauro wako wakagadzirwa nekomiti, unenge wabatwa, uye kwete nekuda kwezvikonzero zvinozivikanwa nemunhu wese. Wese munhu anoziva kuti makomiti anowanzo kugadzira madhizaini, asingaenderane emitauro. Asi ndinofunga kuti njodzi huru ndeyekuti ivo havatore njodzi. Kana munhu mumwe chete ari kutonga, anotora njodzi idzo komiti yaisazombobvuma kutora.

Iwe unofanirwa kuisa njodzi kuti ugadzire mutauro wakanaka here? Vanhu vazhinji vanogona kufungidzira kuti dhizaini yemutauro ndipo paunofanira kugara padyo nehuchenjeri hwechinyakare. Ndinobheja kuti handizvo. Mune zvimwe zvese zvinoitwa nevanhu, mubairo wacho unoenderana nenjodzi. Saka nei magadzirirwo emutauro achifanira kuve akasiyana?

Source: www.habr.com

Voeg