{"id":36,"date":"2023-01-14T14:34:20","date_gmt":"2023-01-14T13:34:20","guid":{"rendered":"https:\/\/djax.se\/blog\/?p=36"},"modified":"2023-01-14T14:34:20","modified_gmt":"2023-01-14T13:34:20","slug":"utveckla-utan-domankunskap","status":"publish","type":"post","link":"https:\/\/djax.se\/?p=36","title":{"rendered":"G\u00e5r det utveckla utan dom\u00e4nkunskap?"},"content":{"rendered":"\n<p>Systemutveckling handlar om att modellera och automatisera n\u00e5gon process i verkligheten. Det kan vara att ge anv\u00e4ndaren m\u00f6jlighet att \u00f6ppna en fj\u00e4rrstyrd ventil fr\u00e5n sitt kontor genom att trycka p\u00e5 en digital knapp p\u00e5 sin sk\u00e4rm eller en integration mellan tv\u00e5 aff\u00e4rssystem som g\u00f6r att n\u00e4r en order skapas i det ena s\u00e5 dyker den ocks\u00e5 upp i det andra (helst omg\u00e5ende).<\/p>\n\n\n\n<p>Modellerna \u00e4r abstraktioner, en bunt primitiva datatyper (eller samlingar av andra abstraktioner) som man namngett och kollektivt kommit \u00f6verens om att detta \u00e4r vad vi menar n\u00e4r vi pratar om &#8221;x&#8221;. D\u00e4r &#8221;x&#8221; kan vara en ink\u00f6psorder, ett melee vapen i n\u00e5got spel eller en tand i det d\u00e4r programmet tandl\u00e4karen klickar i n\u00e4r hen dokumenterar vart dina h\u00e5l \u00e4r.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.<\/p>\n<cite><span class=\"authorOrTitle\">Linus Torvalds   <\/span><\/cite><\/blockquote>\n\n\n\n<p>Det jag inte f\u00f6rst\u00e5r \u00e4r varf\u00f6r programmerare inte brukar vara mer intresserade av sin dom\u00e4n och dess abstraktioner. Vi kan ocks\u00e5 s\u00e4ga &#8221;bransch&#8221; och nu menar jag inte att du jobbar i mjukvarubranschen, utan den bransch d\u00e4r problemen du l\u00f6ser finns.<\/p>\n\n\n\n<p>Med tydliga dom\u00e4nobjekt undviks spr\u00e5kf\u00f6rbistring, speciellt om kommunikation sker mellan m\u00e4nniskor med olika modersm\u00e5l. Systemet kommer upplevas mer logiskt och f\u00f6r\u00e4ndringar \u00e4r enklare att resonera kring.<\/p>\n\n\n\n<p>M\u00e4nniskans hj\u00e4rna \u00e4r b\u00e4st p\u00e5 att k\u00e4nna igen symboler, f\u00e4rger och saker och inte kalla, r\u00e5a siffror. Skapa en v\u00e4rld och ber\u00e4ttelse kring ditt system man kan k\u00e4nna igen.<\/p>\n\n\n\n<p>Visst, skall vi koppla ihop de d\u00e4r aff\u00e4rssystemen kanske det allra mest intressanta f\u00f6r en tekniker \u00e4r att v\u00e4lja vilken mapp filen skall mellanlanda i, eller s\u00e4tta upp n\u00e5got h\u00e4ftigt meddelande middleware s\u00e5 datan inte ens beh\u00f6ver skrivas till disk p\u00e5 sin resa mellan systemen.<\/p>\n\n\n\n<p>Men n\u00e4r datan sedan skall h\u00e4mtas, omformas och berikas fr\u00e5gar du dig sj\u00e4lv inte d\u00e5 lite filosofiskt; vad \u00e4r egentligen en order? Finns alltid det h\u00e4r f\u00e4ltet? Vad ens \u00e4r det h\u00e4r f\u00e4ltet? Vad betyder det h\u00e4r f\u00e4ltet i kontexten av k\u00e4llsystemet? Vad kallas samma sak i m\u00e5lsystemet? Anv\u00e4nder ens det systemet samma typ av abstraktion? Vad h\u00e4nder i verkligheten om f\u00e4ltet ibland inte kommer med f\u00f6r att min try-catch sv\u00e4ljer alla problem n\u00e4r det blir lite jobbigt? Kan n\u00e5gon vuxen ber\u00e4tta f\u00f6r mig exakt vad jag skall g\u00f6ra?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Thus the programmer must be able to explain, for each part of the program text and for each of its overall structural characteristics, what aspect or activity of the world is matched by it. Conversely, for any aspect or activity of the world the programmer is able to state its manner of mapping into the program text.<\/p>\n<cite><a href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/Naur.pdf\">Peter Naur \u2013 Programming as Theory Building<\/a><\/cite><\/blockquote>\n\n\n\n<p>Det \u00e4r inte bara enstaka f\u00e4lts vara eller inte vara som \u00e4r intressant. F\u00f6r beroende vad nuvarande v\u00e4rdet p\u00e5 ett f\u00e4lt \u00e4r kan g\u00f6ra att v\u00e4rdet p\u00e5 ett relaterat f\u00e4lt blir ologiskt. Och det \u00e4r inte alltid sj\u00e4lvklart hur de ens \u00e4r relaterade. Kan levererad m\u00e4ngd vara mer \u00e4n best\u00e4lld?<\/p>\n\n\n\n<p>H\u00e4r skall du som proffs g\u00e5 till anv\u00e4ndaren och fr\u00e5ga vad \u00e4r det h\u00e4r f\u00e4ltet till f\u00f6r och vad h\u00e4nder ifall det saknas. Vill du ha ett larm om det h\u00e4nder? Kan du hj\u00e4lpa mig kolla i systemet n\u00e4r jag skickar ett test ifall det blir r\u00e4tt? Har alla m\u00e4nniskor alltid 32st t\u00e4nder?<\/p>\n\n\n\n<p>Personen kommer s\u00e4kert uppskatta att du v\u00e4rdes\u00e4tter hens kunskap och vara mer villig att anv\u00e4nda den nya mjukvaran du kodar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Mera l\u00e4sning<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.amazon.com\/Domain-Driven-Design-Tackling-Complexity-Software\/dp\/0321125215\">Domain-Driven Design: Tackling Complexity in the Heart of Software<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Systemutveckling handlar om att modellera och automatisera n\u00e5gon process i verkligheten. Det kan vara att ge anv\u00e4ndaren m\u00f6jlighet att \u00f6ppna en fj\u00e4rrstyrd ventil fr\u00e5n sitt kontor genom att trycka p\u00e5 en digital knapp p\u00e5 sin sk\u00e4rm eller en integration mellan tv\u00e5 aff\u00e4rssystem som g\u00f6r att n\u00e4r en order skapas i det ena s\u00e5 dyker den [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":68,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-36","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-systemutveckling"],"_links":{"self":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=36"}],"version-history":[{"count":0,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/media\/68"}],"wp:attachment":[{"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}