Avançar para o conteúdo principal

Manual de Instruções - A Monstruosidade da Simplicidade

Pensar num site estático sem JavaScript já se pode considerar que é um trabalho "monstruoso" pois temos de saber e dominar o HTML e o CSS. Mas qualquer um pode fazer algo simples, copiando código de outros exemplos e aplicando no site que quer desenvolver. 

Mesmo assim, se pensarmos na perspectiva do servidor, existe outro trabalho que precisa de ser gerido para o cliente possa interagir com o site. 

É aqui que entra a monstruosidade da simplicidade. 

Se isto fosse a comunicação entre duas pessoas, a simplicidade, seria igualmente monstruosa, mas na perspectiva de quem está de fora a observar é pura simplicidade. 

O Manel diz à Maria: "creio que vai chover", em voz alta ( o protocolo é o Som e o método é o Verbo ) e a Maria que tem um corpo com as propriedades necessárias para lidar com a informação que foi pronunciada recebe a informação pelas orelhas, as qual será interpretada pelo cérebro, sendo que o cérebro tem de dividir os dados e compara-los com o que conhece e é nesse momento,  depois de interpretar a informação, que fez uma verificação das probabilidades dessa afirmação, para saber se podia ser verdadeira ou não e construiu um objecto informativo que responde com os dados que foram anunciados. A Maria diz ao Manel: "creio que tens razão, devemos ir para casa". A resposta da Maria, afirma e confirma a afirmação anunciada pelo Manel e acrescenta uma nova informação que terá de ser gerida pelo Manel para dar continuidade à conversa entre o Manel e a Maria. 

Na perspectiva comparativa, cada pessoa é um servidor e um cliente ao mesmo tempo.
Antes de pensarmos na comunicação, lembramos o que são computadores e sistemas operativos. 
Os sistemas operativos mais usados para gerir sites, são os sistemas operativos Linux. Tanto faz qual a distribuição, desde que se saiba que, para o efeito de ser servidor de um site, ele só precisa dos serviços que o site irá correr. Dai que na actualidade, também se use uma tecnologia chamada Docker que serve para simular uma máquina real com um sistema operativo Linux a correr os serviços necessários para servir o site, dentro dessa simulação e expõe-a ao público, permitindo que os dados que estão no servidor, também estejam antes de tudo, na mesma pasta que tem o ficheiro de configuração, com os ficheiros necessários do site. Dockerfile.

Seja servidor real seja Docker, os serviços que queremos usar são independentes da plataforma. 

O Hardware electrónico que pode servir milhares de funções, também é monstruosamente simples.

O Hardware mecânico que serve várias funções, também é monstruosamente simples. 

O que há de comum? Cada singularidade tem uma função de interpretação e uma funçáo de resposta.

Desde o componente mais simples de um relógio eletrónico até ao mais complexo como um CPU. 

Por isso, de uma forma simplificada, as máquinas só sabem interpretar impulsos eléctricos, também como as pessoas, mas como esse tipo de comunição é complexa de gerir, criam-se novas formas de comunicar, que fazem parte das camadas de comunicação do protocolo TCP/UDP e Sockets. Mesmo assim, programar sockets é monstruosamente difícil, sendo que para quem sabe, é monstruosamente simples. 

A comunicação entre a Maria e o Manel poderia ter mais detalhes a explicar o processo de destruturação da informaçáo e recriação de informação para responder, mas os processos lógicos que usaram para comparar a informação, etc.. é igualmente electrónico, mas a intensidade da electricidade é muito menor. 

Voltando aos computadores, o Manel usou o protocolo SOM+Verbo. 

O Protocolo para servir dados em sites, é o HTTP e usa métodos de pedidos de informação tais como o GET e o POST, que são os mais comuns de usar. Na nossa interpretação como humanos, a comunicação entre servidores e\ou máquinas e\ou serviços e\ou programas e\ou fecheiro de código, é unicamente visual e não usa verbo nem língua gestual. O verbo é usado como comentário para guiar a interpretação do código. O Código é a estrutura das várias linguagens que são usadas para servir um site e que são representadas em ficheiros de texto, com a extensão .css, .html, .js, .json, .xml. 

Podemos considerar que estas são as extensões principais que são usadas na construção de um site, sendo que na perspectiva da comunicação, o JavaScript tem funcionalidades para lidar de com diferentes permissões os ficheiros dessas extensões. O JavaScript pode alterar as propriedades dos ficheiros em tempo real ( sem alterar o orignal ) de HTML e CSS. Ficheiros com a extensão de .json e .xml não têm propriedades de expressão no site e como tal, servem o propósito de estruturar dados estáticos. Esses dados podem ser filtrados de forma a apresentar unicamente os dados que queremos partilhar, na associação de uma função que poderá ser usada para activar um evento (click), para que esse evento que é gerido pelo JavaScript, faça um pedido da informação estática que está estruturada num ficheiro .json ou .xml. Conforme o ficheiro, existe duas abordagens e\ou métodos diferentes para ler o contúdo dos ficheiros, organizar a informação e enviar a informação para ser expressa como conteúdo na <tab> da página de HTML. 

Ao ler a documentação sobre a comunicação entre servidor e cliente usando o protocolo HTTP, usando JavaScript, encontramos uma terminologia chamada Ajax. Asynchronous JavaScript and XML. Não sendo o Ajax uma tecnologias é antes de tudo uma forma de interagir com as várias tecnologias, tais como, HTML ou XHTML, CSS, JavaScript, DOM, XML, XSLT e o mais importante, o objecto XMLHttpRequest.  O XML é cada vez menos usado e por isso focamo-nos no JSON, sendo que é importante lembrar que existem sites que ainda usam o XML para representar e partilhar conteudos informativos que podem ser usados como conteúdo de sites. 

O objecto XMLHttpRequest tem funções e é considerado um API. ( Application Protocol Interface )  

Como terei dito no post anterior, o JavaScript tem funções que no Browser servem a comunicação de dados e que essas dados são representados e geridos por {objectos} sendo que os objectos tèm funções. 

O JavaScript no browser tem um {objecto} para lidar com dados organizados em JSON, chamado JSON e este objecto tem duas funções: o parse e o stringify. 

Como exemplo simples, temos o seguinte: 

// app.js 
// exemplo do método Parse
const jsonObject = '{"Nome:Macaco, Caracteristica:Preguiçoso"}'; 
const lerObject = JSON.parse(jsonObject);
console.log(lerObject.Nome); // Macaco
console.log(lerObject.Caracteristica); // Preguiçoso

É importante reparar que os dados que são usados, estão entre aspas e serão interpretados com "strings". Mesmo assim, o JavaScript sabe que aquele conjunto de strings é um objecto de JSON porque a estrutura do objecto segue as normas que o JSON exige para representar os objectos. Por esta razão, para aceder ao conteudo do objecto, temos de referir o objecto e a chave do conteudo. nomedoObjct.Chave. Ẽ importante também lembrar que para termos acesso ao conteúdo do objecto, temos de associar o conteúdo do objecto a uma nova variavel que irá conter o resultado da função JSON.parse(). É a partir desta nova variavel que temos acesso ao conteúdo do objecto. 

Na publicação anterior, refere de uma forma muito simples, os Objectos e os Objectivos, sendo que disse que só os objectos têm funções. Isto pode ser mal interpretado e por isso volto a referir essa publicação. Os ficheiros de JavaScript podem conter funções que não estão dentro de objectos e os objectos podem estar dentro de funções. Mas para simplificar a forma de interagir com os objectos com JavaScript no Browser ora o JavaScript no NodeJS, tive de considerar dizer isso. Os Arrays(listas[]) também podem ter objectos, mas para já ( alguém que me corrija ), creio que os arrays[] não podem ter funções como propriedade do array[], senão usando a palavra reservada "new" na declaração de uma função. 

Usando a outra função do objecto JSON no JavaScript para o Browser, chamada stringify() temos o processo de conversão da representação de um objecto, array ou função para "strings". Este método consegue interpretar e traduzir ora {obejctos}, ora [arrays] ora (funções).  

// app.js
console.log(JSON.stringify({a: 1, b:2})); 
console.log(JSON.stringify([new Number(3), new String('false'), new Boolean(false)])); 
console.log(JSON.,stringify(new Date(2022, 0, 2, 19, 30, 0)));

- Funções 

Falar de funções poderá ser outro post, talvez o seguinte, mas quero falar um pouco neste aqui.  

A definição de uma função em JavaScript tem a seguinte estrutura: 

// app.js - isto é um comentário
function fun() { // declaração da função com nome. 
    // aqui ficam as instruções que queremos dar a esta função
    console.log("esta é a função fun e é muito divertida"); 
}; // fim da declaração da função
fun(); // chamar função


Quando o JavaScript interpreta uma palavra com parentises, executa a função. 
Dentro dos parentises podemos acrescentar variaveis, chamados de argumentos, para associar um valor aos mesmos e dar-lhes uma função de expressão. 


// app.js 
function add(a, b) { // variaveis posśiveis - 2
    c = a + b; // soma os dois valores inseridos
    console.log(c) // imprimir resultado

add(200, 32); //  232

A abordagem dos vários temas que devemos considerar saber antes de começar a fazer seja lá o que for, são tantos que ficamos com aquela sensação de estar a lidar com um monstro selvagem. A humanidade tem demonstrado que até os animais selvagens se adaptam às pessoas e às sociedades. Tal como a humanidade se adaptou às máquinas e lhes deu uso. 

São sempre questões de comunicação. 

Comentários

Mensagens populares deste blogue

Manual de Instruções - A Segurança

Esta publicação poderá ser extensa, pois o tema é complexo e sabendo que não existe propriamente uma solução que funcione a 100%, nunca poderá ser resolvida sem o tal processo educativo que serve a liberdade que o Deus nos deu, na associação das nossas escolhas pessoais que terão reflexos sociais ou mundiais.  " O mal que existe no mundo humano, não se deve à vontade de Deus, mas a quem tem essa Liberdade " As técnicas e métodos que permitem a segurança, seja humana, animal ou tecnológica, tem como objectivo limitar fluxos informativos que queremos impedir que aconteçam. Para isso a melhor escolha nos últimos 40 séculos de história, ou mais, é o processo educativo, que dá instruções aos alunos, permitindo-os errar para descobrir, havendo uma exposição de soluções e a explicação das mesmas, para que se entenda porque é que a escolha sugerida é a melhor, sendo que o professor deverá saber que para aprender, tem de errar ou até, aceitar novas perspectivas e interpretações de tud...

Manual de Instruções - As Ferramentas 00

 Este artigo é a continuação da sequència dos artigos anteriores. Tal como todos os artigos futuramente apresentados neste blog, são a continuidade uns dos outros.  As ferramentas que usamos para nos ajudar a simplificar e resolver vários problemas, têm como funçâo principal acrescentar uma solução para um ou vários problemas.  As ferramentas que iremos usar são de código aberto e livres de serem usadas até para fins comerciais. No nosso caso as ferramentas já referidas em artigos anteriores, são o Browser e o NodeJS. É que o HTML o CSS servem a função estética do produto, sendo este apresentado e interpretado pelo Browser, lembrando que na verdade é o Browser que interpreta o JavaScript. Assim quero considerar que a linguagem de programação JavaScript é uma ferramenta que o Browser compõe e dispõe.  Num dos albuns que fiz associado ao projecto OdicforceSounds, existe uma música chamada "Mr. JSON", que é o titulo que oferece conteúdo como continuidade da música anter...

Manual de Instruções - Segunda Parte

A estética é algo que pode parecer irrelevante quanto à sua função, contudo é também o lado mais importante da apresentação, ora do produto que estamos a confeccionar ora da forma como estruturamos o produto em questão, ora também na associação de apetite que poderá produzir em quem aprecia o produto e por isso, poderá desejar.  Por isso existirem vários editores de código, que não são mais do que editores de texto que dão uma certa cor ao texto, de forma a organizar os alimentos a usar e as ferramentas a serem usadas, os IDE's cumprem a função de oferecer uma estética que facilita a leitura da receita como também na sua produção.   Existem vários Editores de Texto para fins de Desenvolvimento de Código, sendo que todos servem para essa função, cada cozinheiro adapta-se ao editor que tem mais experiência ou que é mais popular. Se a cozinha estiver suja e desarrumada o cozinheiro irá ter maior dificuldades em produzir o prato que quer confeccionar. Não por falta de aptidõe...