
Recentemente me perguntaram como o desenvolvimento em C # difere do desenvolvimento em C ++. Como resultado, nasceu a ideia de explicar o significado de vários termos de TI usando o exemplo do processo de cultivo de batatas.
Imagine que você precisa plantar batatas. Você tem muitas maneiras de resolver esse problema.
Você pode encontrar uma pessoa com um trator que venha plantar batatas para você, assim como uma pessoa que garantirá que uma pessoa com um trator plante batatas corretamente. Eles virão com suas batatas.
Isso é terceirização.
Você pode encontrar a pessoa que plantará suas batatas no seu trator.
Isso é pessoal demais.
Você pode encontrar uma pessoa que venha fazer as medições do jardim, oferecer vários modelos de tratores e o modo de operação ideal do operador do trator. Nesse caso, ninguém plantará batatas, mas você saberá exatamente como fazer isso.
Isso é pesquisa e desenvolvimento, ou trabalho de pesquisa.
Você pode ligar para o seu vizinho Kolya para plantar batatas por uma garrafa de vodka e 2 maços de cigarro.
Isso é freelancer.
Você pode ligar para todos os seus parentes, vizinhos, amigos e plantar batatas juntos.
Isso é fonte de multidão.
Você pode passear com amigos, vizinhos, parentes e dizer que sabe plantar batatas, mas para isso precisa de finanças. Você promete que, assim que coletar as batatas, você certamente alimentará todos os que ajudaram primeiro.
Isso é crowdfunding.
Você pode pegar um arado, vários baldes, batatas, o livro "Plantando batatas em 21 dias" e plantar as batatas você mesmo. Mas, se você precisar plantar outra variedade de batatas, precisará cavar o jardim novamente. Risco: um vizinho pode visitar à noite e desenterrar suas batatas enterradas.
Este é um desenvolvimento no Wordpress.
Você pode pegar uma pá e plantar batatas em um jardim onde já existem fertilizantes, buracos e flechas cavados, em que ordem para plantar batatas.
Este é um desenvolvimento em .NET / C #.
Primeiro você faz uma pá do zero, depois baldes, estuda a composição do solo e depois conta manualmente a quantidade de batatas. Então você precisa cavar tantos buracos quanto batatas. Em seguida, você precisa preencher consistentemente todos os caroços com batatas. Não pule as covas, pois você ficará chocado.
Este é o desenvolvimento de C ++.
Você pode procurar o presidente da fazenda coletiva e dizer que sabe como plantar batatas, mas este ano você não plantará, mas 100% o fará no próximo ano. E será muito legal, e a colheita será 10 vezes maior que a colheita de um vizinho. Portanto, agora você precisa de dinheiro, pás, um trator, um motorista de trator (de preferência dois), cinco escavadeiras e uma secretária.
Este é um passo inicial na frente de um investidor.
Seu bisavô plantou batatas, seu avô plantou batatas, seu pai plantou batatas. E você também continua a plantar batatas.
Este é o suporte ao produto.
Cavando batatas, de tempos em tempos você desenterra aquela que seu pai e seu avô plantaram.
Este é um código legado.
Às 8:00 da manhã, você e seu amigo, pai e vizinho vão ao jardim para discutir o progresso no plantio de batatas. Você diz a todos os presentes que plantou batatas ontem, hoje também plantará batatas e não terá problemas que o impedirão de plantar batatas, exceto os mosquitos que constantemente o picam. Mas isso não afetará a qualidade e a velocidade do plantio de batatas e a colheita futura. Depois disso, todo mundo pega pás e continua a plantar batatas.
Este é um rally de scrum.
Você plantou batatas. Depois de um tempo, começou a germinar. E na sua batata os besouros do Colorado começaram a aparecer. Você começa a envenená-los, coletá-los manualmente, esmagar e atear fogo. Você consegue destruir a maioria deles, mas depois de um tempo eles aparecem em alguns lugares novamente.
Estes são depuração de código e correção de bugs.
Você plantou batatas. Seu pai foi ao jardim e disse que as batatas estavam tortas e você esqueceu de deixar um lugar para beterraba. Portanto, você precisa transplantar uma parte da batata. Dois dias depois, quando você termina o trabalho, seu avô chega e diz que a profundidade em que enterrou as batatas não é suficiente e, portanto, é necessário mover as batatas inteiras 5 cm para baixo. E ele vai beber cerveja com seu vizinho Kolya e seu pai.
É o líder da equipe (líder da equipe), gerente de projeto (gerente de projeto) e refatoração (refatoração).
Você quer ganhar algum dinheiro. Você vai ao vizinho Kolya e diz que quer ajudá-lo a plantar batatas. Um vizinho pede que você mostre a maior batata que você cultivou no ano passado, bem como os nomes de outros vizinhos aos quais você plantou batatas no passado. Um vizinho também pergunta por que você veio plantar batatas especificamente para ele, ao qual você deve responder que sempre sonhou em plantar batatas apenas em seu jardim. Você será solicitado a explicar a diferença entre um ancinho e uma tesoura de jardim, para contar sobre o melhor ancinho com o qual você teve que trabalhar e também para explicar em detalhes o processo de preparação do feno e limpeza do poço. E somente depois que a mãe do vizinho confirmar que "conhece essa coisinha", eles lhe darão a pá mais idiota e você começará a plantar batatas.
Esta é uma entrevista com uma empresa de serviços.
Você vem para o vizinho Kolya e pega batatas no porão para plantar em seu jardim. Você promete que, quando sua batata crescer, você devolverá uma parte ou ajudará a plantá-la no próximo ano. É claro que você não está fazendo nada e, depois de um ano, volta ao seu vizinho para pegar algumas batatas dele.
Este é um software de código aberto.
Sua vila tem um grande campo onde as pessoas da vizinhança jogam fora suas batatas e, às vezes, outros vegetais. Alguém joga batatas podres e alguém - bom. Portanto, você decide não plantar suas batatas, mas visita periodicamente o campo para coletar batatas lá.
Este é StackOverflow.com.
Toda a sua família está plantando batatas na vila. Naquele momento, você percorre o mercado e diz a todos que tem parentes que podem plantar batatas de maneira rápida e eficiente que podem vender caro no mesmo mercado.
Este é um gerente de vendas que vende sua equipe offshore.
Você só quer plantar batatas em particular. Mas centenas de estranhos se reuniram no jardim. Eles não ajudam a plantar batatas, mas monitoram cuidadosamente o processo. Depois de cavar as batatas no buraco, todo mundo rapidamente começa a escrever o número de buracos, linhas e quantas batatas restam no mundo em um notebook. Depois eles trocam seus cadernos e correm para o seu vizinho, que também está plantando batatas. Nenhum dos observadores acredita que você acabou de plantar batatas até reescrever todas as informações de outros cadernos.
Este é um blockchain.
Você está imprimindo 1.000 fotos de batatas em uma impressora. Você vende cada foto ao seu vizinho por 1 dólar, dizendo que plantar batatas de verdade é o século passado e muito em breve ninguém precisará dessa batata de verdade, e todos terão fotos da batata. E como será impossível imprimir novas fotografias no futuro, essas fotografias aumentarão de preço. Como todo mundo tem batatas de verdade e ninguém tem fotos, os vizinhos ficam felizes em comprar fotos. Mas para o jantar, eles ainda cozinham batatas de verdade. Nesse momento, em uma vila vizinha, outras pessoas vendem outras fotos de batatas e dizem que somente essas fotos terão valor em 10 anos.
Isso é bitcoin.
Você tem 10 ha com batatas. Você começa a desenterrar. Mas você não está interessado na batata inteira, mas apenas a batata é quadrada, verde e semelhante ao Mickey Mouse. Depois de desenterrar todas as batatas, pegue as dez batatas encontradas que atendem aos seus critérios e vá para casa.
Isso é mineração de dados ou a busca de conhecimento em grandes conjuntos de dados.
Você mora em uma vila onde ninguém plantou batatas por 20 anos. Mas você tem certeza de que em algum lugar está. Portanto, você pega uma pá e começa a cavar tudo - jardins, trilhas, campos, plantações e até lagos. Depois de algum tempo de trabalho duro, você tem sorte e desenterra batatas. Depois de um tempo, toda a vila começa a procurar batatas, cavando tudo em uma fileira.
Isso é mineração de criptocoína.
Uma batata pode dizer muito sobre quem a criou. Por exemplo, um senhorio consciente cultivou-o, em vez de fertilizar a terra, quais ferramentas ele usou, ele próprio a cultivou, ou talvez apenas a roubou de um vizinho, e se sua esposa também era bonita.
Atrás da vila, há um lugar onde todos os moradores devem enviar amostras de suas batatas para que todos possam apreciar seu trabalho.
Mas com o tempo, esse lugar se transformou em um aterro sanitário. Alguém se recusou a carregar batatas, alguém trouxe batatas podres e alguém começou a dizer que ele tinha batatas, mas ele não mostrou. Algumas pessoas montaram um guarda e começaram a receber dinheiro de quem quisesse ver as batatas.
Com o tempo, para encontrar a batata de uma pessoa em particular, você precisa separar as montanhas de lixo.
São dados abertos.
Você desenterrou muitas batatas. O presidente da fazenda coletiva veio até você e emitiu um documento que diz quantas batatas você cavou. Mas, para ler este documento, você precisa voltar ao presidente da fazenda coletiva, porque ele é o único na vila que sabe ler. Outros vizinhos podem ver o documento, mas ninguém entende o que está escrito lá.
Isso é hash (hash, função de hash).
Você tem instruções sobre como plantar batatas. Ele descreve como cavar buracos, quão profundas devem ser, de que lado você precisa colocar batatas no buraco.
Você começa a plantar batatas. Após cada batata enterrada, seu pai verifica se todas as instruções foram seguidas corretamente. E se pelo menos uma instrução for violada, você precisará desenterrar as batatas, preencher o buraco e iniciar o processo novamente.
Este é um desenvolvimento orientado a teste ou TDD.
Seus vizinhos estão cavando batatas. Alguém já trouxe as batatas cavadas para o porão e alguém desenterrou, mas ainda não as colecionou, e ainda está no jardim. E alguém nem começou o processo, e suas batatas ainda estão no chão.
Sua tarefa é coletar uma cópia exata de todas as batatas em sua adega, mesmo uma que ainda não foi cavada. Além disso, é importante que você assine cada batata - quem a cultivou, em qual jardim particular foi colhida e que tipo.
Além disso, você precisa fazer isso de forma que nenhum dos vizinhos descubra que você fez uma cópia exata das batatas e a armazena na adega.
Isso é raspagem (raspagem de dados) ou análise de dados (análise de dados).
Você vem para o jardim e lá as batatas são plantadas. O tamanho ideal da batata, a profundidade do poço e a velocidade de plantio são calculados em tempo real com base em indicadores como velocidade do vento, umidade, temperatura, custo da batata no mercado mundial e ações da Kartoshka Inc. na Bolsa de Nova York.
Isso é inteligência artificial.
Você precisa plantar batatas, mas ninguém em sua família sabe como fazê-lo. Então você vai a um vizinho e o vê plantar batatas. Depois de um tempo, todo mundo está plantando batatas como seu vizinho.
Isso é aprendizado de máquina.
PS
Você desenterrou batatas e as colocou na adega - cada variedade separadamente. Se, por engano, sua batata chegar à prateleira errada, seu avô estará correndo e começará a bater em você com um pau.
Este é um banco de dados relacional.
Uma vez que você teve permissão para não separar as batatas, jogue-as no porão.
Este é um banco de dados NoSql.
Você não joga batatas na adega, mas no sótão, onde a empurram nas prateleiras, parte dela é levada de volta para a adega e parte para a adega de seus vizinhos.
Este é um armazenamento de dados na nuvem.
Você tem batatas? Mas, em vez de plantá-lo, você está fazendo algo semelhante às suas batatas de várias formas improvisadas. Você não pode comer, mas a semelhança é óbvia.
Esta é uma impressora 3D.
No processo de plantar batatas, você registra as coordenadas GPS da vila, seu campo e, finalmente, um buraco específico, obtendo assim um identificador exclusivo pelo qual você pode calcular facilmente onde uma batata específica está enterrada.
Este é o endereço IP.