Maxime incommodi errata in programmatione vitae (usque)

Maxime incommodi errata in programmatione vitae (usque)
Ut aiunt, si veterem codicem non pudet, tum programmator non es β€” et huic sententiae assentior. Incepi programmatio pro fun plus quam XL annos, et professione XXX annos, sic multum errata habeo. lots of. Ut a scientiarum computatralium professore, discipulos meos doceo discere ab erroribus, suis, meis, et aliis. Tempus puto de erroribus meis loqui ut pudorem non amittam. Spero fore ut aliquem utilem.

Tertius locus - Microsoft C compilator

Magister meus magister credidit Romeo et Iuliet tragoediam haberi non posse, quod characteres culpae tragicae non habebant - simpliciter stulte conversati sunt, sicut eleifend debet. Cum eo tum non consentiebam, sed nunc granum rationalitatis in sententia video, praesertim in programmatis coniunctione.

Per tempus sophomoris anni MIT confeci, iuvenis eram et inexpertus, tam in vita quam in programmatione. Aestate intermisi Microsoft, in C compilator quadrigis, primum usitatas res egi sicut subsidium proficuum, deinde mihi creditum est operam navare in gravissima parte compilatoris (ut putavi) - optimiizationis tergum. Peculiariter habui x86 codicem pro ramulis propositionibus emendare.

Optimae machinae codicem pro omni casu scribere constitui, me in piscinam praecipitem conjeci. Si densitas bonorum distributio alta erat, eas intravi transitus mensa. Si divisorem haberent, ea usus sum ut tabulam arctiorem facerem (sed si modo divisio fieri posset utens paulum subcinctus). Cum omnes valores essent duorum potentiae, ego aliam optimam feci. Si copia valorum condicionibus meis non satisfecit, eam in plures casus optimizabiles discidi et codice iam optimized usus est.

visio nocturna erat. Multis annis post mihi dictum est programmator qui codicem meum hereditavit me oderat.

Maxime incommodi errata in programmatione vitae (usque)

Discitur

Sicut David Patterson et Ioannes Hennessy scribunt in Architecture Computer et Delineatio Computer Systems, unum e principalibus principiis architecturae et consilii est generatim res quam celerrime laborare.

Acceleratio communium casuum efficacius emendare faciet quam rariores optimizing casus. Ironice communes casus simpliciores saepe sunt quam rari. Hoc consilium logicum supponit te scire utra causa communis consideretur - quod fieri non potest nisi per processum accuratae probationis ac mensurationis.

In defensione mea, conabar inspicere quales rami propositiones in praxi similes essent (qualia quot rami essent et quot constantes essent distributi), sed anno 1988 haec notitia praesto non erat. Sed speciales casus non addidissem, quoties hodiernus compilator codicem optimalem generare non potuit ad exemplum artificiale accessi.

Elit periti vocare debeo et, una cum eo, cogitare quid causae communes essent et cum illis nominatim agerem. Scriberem minus codicem, sed bonum est. Sicut fundator Stack Superfluus Jeff Atwood scripsit, inimicus programmator pessimus ipse programmator est:

Novi te optimas voluntates habere ac nos omnes. Progressiones creare et codicem scribere amant. Ut id efficitur quam. Quodvis problema solvendum putamus cum taenia ductus, fusum homemade et ternum codicem. Quod Codices admittere piget, optimus Codex est ille qui non est. Quaelibet nova linea indiget debuging et fulcimento, intellegi debet. Cum novum codicem addideris, pigre et fastidium debes facere quod omnia alia bene exhausta sunt. Multi programmatores nimium codicem scribunt, inimicum nostrum facit.

Si simpliciorem codicem scripsissem, qui casus communes tegebat, multo facilius esset si opus renovaret. Intermisi pulmentum quod nemo agere voluit.

Maxime incommodi errata in programmatione vitae (usque)

Secundo loco: vendo in socialis networks

Cum laboravi apud Google de instrumentis socialibus vendo (memini Myspace?), aliquid tale scripsi in C++;

for (int i = 0; i < user->interests->length(); i++) {
  for (int j = 0; j < user->interests(i)->keywords.length(); j++) {
      keywords->add(user->interests(i)->keywords(i)) {
  }
}

Errorem statim vident Programmatores: ultima ratio debet esse j, non i. Unitas probatio errorem non revelavit nec meus CENSOR. Lorem peractum est, et una nocte codice meo servo ivit et omnia computatoria in centrum data ingruebat.

Nihil mali factum est. Nihil cuiquam ruptum est, quod ante codicem globalis missilis intra unum centrum notae probatum est. Nisi fabrum SRE cessaverunt ludere billiards aliquantisper et modicum reverti fecerunt. Mane postridie epistulam accepi cum fragore dump, codicem emendavi et unitas probationum addidit quae errorem caperent. Cum sequebar protocollum β€” alioquin codicem meum currendo deficeret β€” aliae difficultates non erant.

Maxime incommodi errata in programmatione vitae (usque)

Discitur

Multi certi sunt, quod talis error maioris erroris reum dimissionem certo constat, sed hoc non ita est: primum omnes programmatores peccant, secundo, raro eundem errorem bis faciunt.

Re vera, amicum programmatorem habeo, qui egregie architectus fuit et ad unum errorem inflammatus est. Post hoc, conductus apud Google (et mox promotus) honeste locutus est de errore, quem in colloquio fecit, nec funestum reputatum est.

Hoc illud est quod dico de Thoma Watsone, capite legendario IBM;

Regimen ordinis dignitas circiter decies centena milia dollariorum nuntiata est. IBM Corporation - vel potius, Thomas Watson Sr. personaliter - eum revera obtinere voluit. Infeliciter, repraesentativum venditio hoc facere non potuit et IBM biduum amisit. Postridie, hic operarius munus in Mr Watson venit et involucrum in scrinio posuit. Dominus Watson ne molestus quidem est eum intueri - molestie enim exspectabat et litteras renuntiationis esse sciebat.

Quaesivit Watson quid abiit iniuriam.

Repraesentativa venditio singillatim de progressu tenerorum locutus est. Errata nominavit quae vitari poterant. Postremo dixit, β€œDomine Watson, gratias tibi ago quod me expediam. Scio quantum hoc ordine nobis opus sit. Scio quantus sit" et expedivit abire.

Watson ad ianuam eum accessit, oculis eum intuens, involucrum reddidit his verbis: β€œQuomodo te dimittam? Modo decies centena millia dollariorum in tua educatione investivit.

Subucula habeo quae dicit: "Si vere discere erratis, iam magister sum." Nam cum fit errorum, ego doctor scientiae.

Primo loco: App Inventor API

Vere terribiles errores magnum numerum utentium afficiunt, divulgantur, longum tempus corriguntur, et fiunt ab iis qui eos efficere non potuerunt. Meus maximus error omnibus his indiciis quadrat.

Quod peius est melius

lego opusculum Richardi Gabrielis de hoc accessu in nineties tamquam discipulos meos, mihi placet tantum quod studiosis meis peto. Si non bene meministi, memoriam retrahe, parvum est. Haec temptatio repugnat cupiditati "orendi" et "pejus est" accedunt multis modis, etiam simplicitate.

Quomodo debet esse: consilium simplex esse debet in exsecutione et instrumento. Simplicitas interfaciendi plus est quam simplicitas exsecutionis.

Deterius, melius: consilium simplex in exsecutione et interface esse debet. Simplicitas exsecutionis potior est simplicitas instrumenti.

Obliviscatur de illo momento. Proh dolor, multos annos oblitus sum.

app Inventore

Dum opus apud Google, bigas eram app Inventore, hant-and-drop online development environment ad aspirant Android tincidunt. MMIX erat, et literam alpha tempore dimittere festinabamus, ut in aestate magistri classes magistrorum teneremus, qui ambitu docente in casu uti possemus. Volui me ad animos efficiendos, nostalgicos pro modo ludos scribere solebam in TI-2009/99. Illis qui non sciunt, spiritus est obiectum graphicum duplex dimensivum quod cum aliis elementis programmatibus movere et penitus potest. Exempla consueta spatiis spatiis, asteroides, marmora, reticula includunt.

App Inventorem obiecti ad effectum deduci fecimus in Java, ergo iustus fasciculus rerum ibi est. Cum globuli et spiritus simillime agunt, concisum genus spritum abstractum cum proprietatibus X, Y, Volo (celeritate) et Heading creavi. Eosdem modos habebant collisiones deprehendendi, proiectionis in ore scrinii, etc.

Praecipua differentia inter globulum et spritum est quod ad unguem trahitur - impletur circulus vel raster. Cum primum animum perficiendum, logicum erat denotare x- et y-coordinatas anguli sinistri superioris ubi imago sita erat.

Maxime incommodi errata in programmatione vitae (usque)
Postquam mente laborabant, decrevi me obiectis globum efficere posse cum minimo codice. Sola problema fuit quod iter simplicissimum (a parte instrumenti inspicientis) indicans coordinatas x- et y-coordinatas anguli sinistri superioris formae pilae sistens.

Maxime incommodi errata in programmatione vitae (usque)
Reapse oportuit indicari centrum circuli x- et y-coordinatis, ut in quolibet textu mathematico docetur et in quocumque alio fonte qui circulos nominat.

Maxime incommodi errata in programmatione vitae (usque)
Dissimilis praeteritis erroribus, hic affectus non solum collegas meos, sed etiam milliones App Inventoris utentium. Multi ex eis erant pueri vel omnino novi programmandi. Multum supervacaneum conficere debebant cum in utraque applicatione operandi in quibus globus praesens erat. Si alia risum memini me errata, haec me etiam hodie sudare facit.

Postremo hoc cimex modo nuper, decem annis post. Disjice, non certum, quia, ut Iosue Bloch dicit, APIs aeternus est. Mutationes facere nequivimus quae programmatum exsistentium afficerent, OriginAtCenter proprietatem addimus cum valore falso in antiquis programmatis et veris in omnibus futuris. Usores quaestionem logicam quaeri possunt: ​​qui vel cogitaverunt locum initium ponere aliunde quam centrum. Cui? Uni programmatori nimis piger fuit ut API decem annos crearet normalem.

Lectiones didicit

Cum in APIs laboratum est (quod fere omnis programmator interdum agere debet), optimum consilium sequi debes quod in video Iosue Bloch delineatum est "Quomodo creare bonum API et cur tam magni momenti est"aut in hoc brevi album:

  • An API tibi et magnum beneficium et magnum detrimentum afferre potest.. Bonus API repetere customers creat. Malus aeterna visio fit.
  • APIs publicus, ut adamantes, in aeternum permanet. Tuum omne da: numquam erit alia facultas omnia recte faciendi.
  • API lineamenta debet esse brevis β€” una pagina cum classibus ac methodis subscriptionibus et descriptionibus, non amplius quam linea sublatis. Hoc tibi facile API restructure permittet si primum tempus non perficiat.
  • Usus casibus describereante exsecutionem API vel etiam opus in eius specificatione. Hoc modo efficere ac specificare omnino non-muneris API vitabis.

Si vel brevem synopsim cum scripto artificioso scripsissem, errorem fere identificarem ac correxissem. Si non, unus e collegis meis certum faceret. Quaevis sententia quae consecutiones attingit, saltem per diem cogitari debet (id non solum pro programmatione).

Titulus opusculi Ricardi Gabrielis "Peius melius est" significat utilitatem quae prima ad mercatum procedit β€” etiam cum imperfecto producto β€” alius vero aeternitatem ad perfectam persequendam impendit. Considerans spiritum codicem, intellego me ne ipsum quidem codicem plus scribere ut aequum sit. Quicquid dicat, multum erravi.

conclusio,

Programmatores quotidie peccant, utrum codicem buggy scribat vel non desit aliquid experiri quod eorum peritiam et ubertatem emendabit. Certe programmator potest esse sine tam gravibus erroribus quam ego feci. Impossibile est autem fieri bonus programmator, quin agnoscat errata tua et ab illis discat.

Constanter offendimus discipulos qui se nimium multos errare sentiunt et ideo programmandi causa non excidunt. Scio quam syndrome impostoris communis sit in IT. Spero fore ut lectiones quas enumeravi discas - sed memento principale: uterque nostrum errat - incommodi, ridiculum, atrox. Mirabor et perturbabor si in futuro non sufficiens materia ad continuandum articulum.

Source: www.habr.com