Jump to content

Archived

This topic is now archived and is closed to further replies.

João Batista Neto

Construindo uma Rede Social

Time  

125 members have voted

  1. 1. Qual área de desenvolvimento você deseja participar



Recommended Posts

A idéia é realmente poder colocar todos os dados no banco,

indiferentemente se vão ter 10, 20, 50 ou 1000 tabelas.

 

A ideia é colocar no banco, apenas o que deve ser colocado no banco.

 

Mais como 1 não vence 10, é apenas uma idéia.

 

Veja amigo, eu trabalho com engenharia de aplicações de grande porte; é tudo o que eu faço, todos os dias;

 

Mas o ponto aqui, não é vencer ou perder, não estamos disputando http://forum.imasters.com.br/public/style_emoticons/default/seta.gif estamos colaborando.

 

Você apenas, não conseguiu ser claro o suficiente para convencer de que está correto; Nesse exato momento, independente de suas alegações, eu continuo, com base em minha experiência (que não é pequena), achando que você está equivocado.

 

Seu objetivo de organizar tem 100% do meu apoio, porém, não dessa forma; A não ser, claro, que você demonstre que seu método é, de fato, melhor que o proposto.

 

Mais estamos ai, diferentemente da decisão de vocês

 

Você é, muitíssimo bem vindo a participar, Duardaum.

 

É preferível que entre o time de desenvolvimento, tenha apenas 5 pessoas como você, que questionam, discordam e propõem formas que acreditam ser melhor; Do que ter 1000 pessoas que aceitam qualquer coisa, sem questionar ou dizer qualquer coisa.

 

Foi buscando pessoas como você e outros que tem ajudado bastante em design e outras áreas, que conhecem uma área específica, que iniciei esse projeto com a comunidade.

 

O repositório para nossa rede social é http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://code.google.com/p/imns

 

Para se tornar commiter no repositório, você precisa me enviar uma MP com um email de uma conta Google sua para que eu possa cadastrá-lo.

 

;)

Share this post


Link to post
Share on other sites

Ai joão batista,

 

Desculpa se eu pareci rúde ou até estressado mais é meu jeito de ser perdoa ai mano rsrsr

e também se eu não fui muito claro mais agora eu vou ser rsrsr

 

eu fiz um breve estudo de caso de uma rede social que poder ser baixado AQUI,

onde está o que eu considero hoje, essencial para qualquer rede social moderna.

 

Depois que você lê-lo e ler o que vou dizer agora, vai começar a me entender um pouco.

 

O que tenho batalhado nesta discursão aqui é o seguinte:

* Imagine que a rede social ganha status internacial e várias pessoas do mundo começem a acessar ela.

* Imagine quantos registros vão está dentro de uma base de dados, independente de qual seja.

* Imagine também o tráfego desses dados na rede, a quantidade de dados que vão ter para poder ser

trazidos em uma camada de visão para poderem ser expostos para o usuário da rede.

 

Com base nesses sitados acima, vou começar a me esplicar.

 

Sou desenvolvedor PHP também e trabalho junto com o banco de dados PostgreSQL.

Já trabalhei com MySql, mais ele com PHP não é muito bom não e demora em fazer algumas

respostas em rede onde o PostgreSQL é muito mais rápido.

 

O maior dos problemas que tive quando iniciei com PHP/MySql era a quantidade de dados

que deveriam ser enviados e trazer um retorno rápido para o usuário que submeteu os dados.

 

Na versão free do MySql com PHP, a gente pode passar (pelo menos eu só conseguir assim) apenas

uma query por vez na função mysql_query e isso atrazava e muito meu serviço.

 

Como eu já trabalhava com PostgreSQL em aplicações Desktop, tentei usar com aplicações web também,

e o casamento não poderia trazer melhores resultados.

 

* Ganhei tempo de desenvolvimento com PHP;

* Economizei linhas de código nos meus scripts PHP;

e uma das melhores vantagens inicialmente:

* Posso mandar mais de uma query na minha função pg_query.

 

Desse modo, pude desenvolver aplicações web mais rapidas para carregar devido

o tempo de resposta entre minha aplicação web e o banco de dados PostgreSQL ser

muito boa.

 

Outra coisa que quero enfatizar também é que:

 

Temos que economizar trafico de rede para poder carregar tudo muito rápido

e diminuir o máximo possivel (apesar de em algumas situações a gente ter o DEVER) fazer consultas

na base de dados, apenas quando a gente realmente precisar e DEVER fazer.

 

Falo isso porque, eu nao sou web designer e hoje, os designers utilizam basicamente imagem em todo o

site ou sistema, e isso pessa e demora DEMAIS DA CONTA para carregar, dando até sono na gente de tanto

ter que ficar esperando a vontade de um site de carregar.

 

Para resolver esses problemas eu utilizo a seguinte linhagem de pensamento quando vou desenvolver minhas aplicações:

* Utilizar as tabelas apenas para guardar dados e de forma que toda vez que ela sofrer algum insert,

possa ser feito no maior número de campos possivel.

Essa lógica aprendir com meu professor da faculdade que é DBA e disse que dessa forma, o número de campos nulos no banco

diminuem e muito e diminuem também o número de 'lixo' no banco de dados, por as tabelas não terem as relações devidas

NO BANCO DE DADOS. E quando uma pessoa deleta uma conta por exemplo: o cara vai e deleta a conta na tabela usuário e esquece

dos restantes dos dados nas outras tabelas que fica acumulando dados e mais dados inúteis, inchando o banco, deixando ele mais

lento e dados que não serao mais utilizados.

* Utilizar as Views na do banco para fazer apresentações de dados;

* Criar funções/procedure storage para poder executar blocos de comandos SQL que se feitos pela rede, iriam demorar uma ETERNIDADE.

Fazendo as funções/procedures storage, você manda os dados uma única vez para o banco pela rede, e o processamento é feito internamente no banco

de forma mais rápida e retorna apenas o resultado que você colocar para poder identificar o sucesso ou fracasso da operação.

 

Assim, temos inserts perfeitos, em lugares que realmente serão inseridos e que a gente não vai esquecer de nada.

 

Espero ter esclarecido um pouco sobre o que eu penso sobre a criação de uma rede social.

 

De qualquer forma, estamos aqui para ajudar se pudermos.

 

Grato a todos!! :)

Share this post


Link to post
Share on other sites

@Duardaum, só pra reforçar, apreciamos a participação e é isso que faz com que cresçamos, o compartilhamento de informação.

 

Onde trabalho, por questões de licenciamento, temos que utilizar dois BD's MSSQL e MySQL. Posso te garantir que o segundo não fica em nada atrás do primeiro que é pago e muito bem pago. Creio que esta lista, possa endossar a qualidade do SGDB.

 

Não sei quanto tempo faz desde a sua experiência frustrante com MySQL ou PHP. Hoje temos um sistema consolidado de Orientação a Objetos em PHP que permitiria que você não precisasse ter que ficar reescrevendo seu código de mysql_* para pg_* . O planejamento do sistema é essencial para perfeita harmonia entre banco e aplicação, e vai muito mais além do que o nome que os campos vão levar na tabela.

 

Pra começar, nem sei como essa conversa virou para o lado de qual banco usar. Isso já foi discutido e todos aqui temos plena certeza que o MySQL aguenta o tranco, isso é indiscutível.

 

Voltando o foco para o padrão de nomenclatura, o primeiro argumento que usei, foi a possibilidade de se criar apelidos para os campos, ainda enfatizei que faremos atribuição dos valores da consulta a objetos específicos, o que até mesmo libera o pessoal que vai PROGRAMAR de ter que ficar pensando em qual CONSULTA usar. Separamos totalmente PHP de MySQL.

 

Filtrando os pontos de divergência, chegamos ao real ponto de discussão: Qual metodologia de nomenclatura é a mais eficiente, organizada e amigável ao usuário (no caso, nós).

 

Particularmente, não gosto de underscore separando os nomes dos campos. Mas entre camelCase e CamelCase, fico com a primeira.

 

A questão do nome da tabela em singular, vejo como uma idéia de "logística". Apesar da tabela armazenar registroS, você trabalha linha a linha, registrO por registro.

 

Quanto à padronização dos campos da tabela, qualquer um que opte pelo formato tabelaCampo, concorda com o João:

 

Pense que, como vamos relacionar uma ideia com um usuário, precisamos ter uma ligação entre elas.

 

Se colocarmos um idUsuarios na tabela Ideias, teremos o seguinte:

 

Ideias
id MEDIUMINT
idUsuarios MEDIUMINT
conteudo VARCHAR

 

 

Dessa forma:

 

SELECT `conteudo` FROM `Ideias` LEFT JOIN `Usuarios` ON (`id`=`idUsuarios`);

 

 

Percebeu ? (o `id` no JOIN refere-se à Ideias ou Usuários ?)

 

Como a coluna id existe tanto em Ideias quanto em Usuarios, ela é ambígua no contexto do relacionamento.

Share this post


Link to post
Share on other sites

Aí pessoal, acho melhor criar outro tópico para definir quais frameworks serão usados, só assim poderemos ter certeza do que o pessoal está apto a fazer (pelo menos na teoria).

 

Eu sei que o Zend Framework é muito poderoso, bem difundido, rápido, etc. etc., mas recomendo o CodeIgniter, por ser mais fácil de aprender, ser recheado de documentação, tutoriais, vídeo-aulas, discussões e, mesmo assim, ter uma organização impecável acoplada ao poder de extensibilidade.

 

-----------------------------------------------------------------

 

Em relação ao JavaScript, temos que tomar cuidado, pois se usado sem responsabilidade, pode deixar o projeto pesado. Em se tratando de uma rede social, o público-alvo é muito abrangente, e este pode ter tanto uma conexão rápida como uma péssima, por isso essas definições devem ser cautelosas, provendo adaptações para qualquer um, que, no caso, seria o switch de versões (low-high).

Com certeza o jQuery poderia nos auxiliar em diversas situações, principalmente na parte de atribuição de eventos, animações, transições, Ajax, etc. Eu sou a favor da utilização do mesmo =]

 

-----------------------------------------------------------------

 

Banco de dados! Ah, banco de dados! Penso que os campos devem conter os nomes segundo as regras de nomenclaturas usadas na maioria das empresas, segundo a máscara:

 

{TABELA}

{tipo_de_campo}_{campo}_{tabela}

 

Onde:

 

tipo_de_campo é o identificador do tipo de dado que será inserido, contendo duas letras, ex.: cd (código), nm (nome), ds (descrição), sg (sigla), im (imagem), etc.

campo é o nome do campo, sem conjunções, preposições, pronomes, etc., nunca abreviados. Ex.: registro_geral (RG)

 

-----------------------------------------------------------------

 

No contexto geral, penso que o projeto tem futuro e que há pessoas motivadas, principalmente a aprender, o que é mais importante que qualquer outro tipo de recompensa.

 

JS -> Achei interessante a idéia do front-end em jQuery e administrativo em Ext mas, o que vocês entendem por administrativo?

Evandro, a parte administrado é o painel "back-end" do sistema, ou seja, o controlador, o gerenciador, como se fosse o cPanel do seu host. Nele, qualquer tipo de configuração pode ser modificada, adicionada ou excluída. O ExtJS pode ajudar nesta parte por ser completo, oferecendo desde uma simples grid até complexos gráficos.

 

Bom pessoal, é isso, também estou disposto a ajudar na parte de programação, análise de requisitos e segurança. Até mais!

Share this post


Link to post
Share on other sites

Pessoal eu criei uma rede social sozinho está pronta, se quizer eu posso colocar em algum site com o 4sherad, e vcs baixam !!!!

 

levinha não passa de 1MB

 

 

aceito! vai servir de estudo para mim, estou criando algo nesse genero, criei alguns post tambem no forum sobre, mas nao tive muito sucesso nas respostas, obrigado

Share this post


Link to post
Share on other sites

Caso ainda precisem de ajuda, eu poderia tentar ajudar com o HTML e CSS do design. Creio que essa seja a única área que eu possa dar alguma força. ;)

Share this post


Link to post
Share on other sites

Porque voces nao migram o projeto para Django e Python ?

Creio que PHP e mais pesado e menos flexivel do que o Django , alem de ser um FrameWork bem facil de se lidar...

 

Abracos

Share this post


Link to post
Share on other sites

Permitem uma crítica?

 

Há muitos talentos envolvidos nesse projeto.

Estou admirado por que tais pessoas não conseguiram ver

que canalizar esforços para um projeto desse seria como

reinventar a roda.

 

Eu penso que um projeto desses não tem muita utilidade.

É muito esforço pra pouco benefício.

 

Acho que vocês não vão conseguir grande ajuda no percurso e no

fim vai ter pouca ou nenhuma repercursão.

 

Só uma crítica, valeu?

Share this post


Link to post
Share on other sites

Dae pessoal, eu também gostaria de saber se o projeto acabou!?

 

Ou caso estejam precisando de gente, podem me chemar!

PHP, MySQL, Zend (Esse quero aprender melhor)

 

enfim, sigam... (:

Share this post


Link to post
Share on other sites

pessoal,

 

Eu realmente nunca usei o JQuery... Sei que é muito bonito, bom e baratinho na hora de fazer animações e ter um padrão de Framework, mas aprendi a mexer em JavaScript na mão... Qualquer coisa que precisarem em questão de DHTML, estou à disposição, é só contatar-me no e-mail que deixei no meu perfil. :D

Share this post


Link to post
Share on other sites

However meus caros amigos.

Se estiverem as vagas abertas, posso ser tanto um Webmaster PHP como um exímio DBA <- Relacionado a área de Back-end.

Posso ajudar na área de front-end com os meus conhecimentos sobre Javascript Standard e/ou com Frameworks.

Qualquer coisa em PHP eu consigo fazer, apenas me diga o que fazer, que mostro o caminho. .-.

 

Atenciosamente,

Diego.

Share this post


Link to post
Share on other sites

Se o projeto foi abandonado (como parece) gostaria de retomá-lo!

Pretendo criar um CMS (?!) para criar, entre outras coisas, uma rede social.

 

Caso alguém esteja interessado entre em contato: contato@neosphp.org

Share this post


Link to post
Share on other sites

Projeto está parado? Estava vendo o controle de versão do Google Codes, nossa realmente muito bom. Sem dúvidas vou estudar MUITO naqueles códigos!

 

Só me tirem uma dúvida: Pra quê criar classes e mais classes pra montar um simples HTML? Não acha que desta forma, está dando muita "volta"? Me desculpem pela ignorância, mas estou apenas querendo entender a lógica disso, afinal, somos todos aprendizes.

Share this post


Link to post
Share on other sites

Só me tirem uma dúvida: Pra quê criar classes e mais classes pra montar um simples HTML? Não acha que desta forma, está dando muita "volta"? Me desculpem pela ignorância, mas estou apenas querendo entender a lógica disso, afinal, somos todos aprendizes.

 

Talvez seja para abstração. Quanto mais abstraído o código estiver, mas fácil será uma manutenção/extensão futura. Até hoje não construí basicamente nada em PHP, no entanto, quando eu for construir um, vou fazer tudo abstraído, de forma que alguma coisinha seja alterada, já seja refletido no site inteiro.

 

Acredito que seja também olhar para o seu HTML como um objeto PHP, dai algumas propriedades desse objeto serão refletidas quando a página ser processada. Imagine um simples botão para toda a página do site, agora imagina que você criou um objeto PHP que tem uma propriedade botaoGravar, com todas as suas características. Então se um dia você querer alterar esse botão, você altera em um só lugar, ou seja, na sua classe que contém o botaoGravar.

 

Na verdade, pode ser por inúmeras razões, além disso, olhando os seus interesses do perfil, parece que você já conhece todos esses conceitos que eu citei. Então não ache que estou julgando seu conhecimento. :D

 

Se eu estiver errado, me corrijam.

 

Espero ter ajudado :D

Share this post


Link to post
Share on other sites

Acredito que seja também olhar para o seu HTML como um objeto PHP, dai algumas propriedades desse objeto serão refletidas quando a página ser processada

Você quer dizer que, após o objeto de um determinado elemento HTML ser carregado, ele não terá o re-trabalho em carregá-lo, pois o objeto já foi criado?

 

Imagine um simples botão para toda a página do site, agora imagina que você criou um objeto PHP que tem uma propriedade botaoGravar, com todas as suas características. Então se um dia você querer alterar esse botão, você altera em um só lugar, ou seja, na sua classe que contém o botaoGravar.

Você diz alterar as funções (ou ações), ou elementos deste botão? Elementos que digo é, inserção de novas classes, por exemplo.

 

Na verdade, pode ser por inúmeras razões, além disso, olhando os seus interesses do perfil, parece que você já conhece todos esses conceitos que eu citei. Então não ache que estou julgando seu conhecimento.

Isso é uma afirmativa relativa. Somos eternos aprendizes, estou sempre aprendendo, e este fórum é a fonte de aprender Padrões de Projeto e OO. O problema é que, a cada dia que passa, sempre acho que meu código não ta legal, ou a forma de padronizar e organizar, o meu OO, se é que você entende. É algo complexo, porém divertido pois sempre tem o que mudar, e quanto mais nós sentimos esta necessidade, mais nós aprendemos. :thumbsup:

Share this post


Link to post
Share on other sites
Você quer dizer que, após o objeto de um determinado elemento HTML ser carregado, ele não terá o re-trabalho em carregá-lo, pois o objeto já foi criado?

 

A classe que irá definir o objeto já estará criada, ou "escrita" em algum lugar do seu código, só então que você instanciar um objeto que será criado o objeto a partir dessa classe. Imagine seu index.php, você tem uma classe em algum outro lugar escrita e ela será instanciada no index.php, ou seja, o objeto é criado/definido a partir dessa classe. Toda vez que o usuário realizar a requisição para esse arquivo index.php, que muitas das vezes é o arquivo principal do seu site, ela criará vários objetos, e um desses objetos podem ser "elementos" HTML com algum valor, pois você pode dar valor a eles num construtor.

Por exemplo, uma classe está sendo instanciada, e você ta processando o HTML, então você pode fazer algo desse tipo:

 

   $objHtml = new ObjHTML('valor1', 'valor2', ...);
   echo "<p>$objHtml->algumaPropriedade</p>";
   // $objHtml->algumaPropriedade tem um valor para ser inserido na tag <p>.

 

Isso é feito de forma parecida nesse código que está no controle de versões da rede social que está sendo criada: http://imns.googlecode.com/svn/trunk/application/rpo/gui/html/HTMLPage.php , observe a class HTMLPage

 

Não me lembro se é usual fazer algo desse tipo, no entanto, era mais ou menos isso que eu estava querendo dizer. Além disso, não tenho tanta experiência na linguagem e suas boas práticas, seria melhor alguém experiente para confirmar minha conclusão.

 

Você diz alterar as funções (ou ações), ou elementos deste botão? Elementos que digo é, inserção de novas classes, por exemplo.

 

Bom cara, meu exemplo não foi tão usual, pois, eu me referia a características do botão quando ele fosse exibido mesmo. Por exemplo, o botão "Responder" azul aqui do fórum, ele tem o texto "Responder" dentro dele, isso seria uma característica dele. Imagina em cada página que eu processar eu ter que colocar diversas características desse botão para ser visualizado no HTML que será entregue para o usuário, inclusive o texto "Responder" ? Sim, é um simples botão, mas existem outros elementos/objetos, que acabam tornando o código duplicado, enquanto eu poderia criar uma classe e instanciar a mesma quando precisasse.

No entanto, a maioria das características desse botão é feita no CSS: sua cor de fundo azul; borda arredondada, fina e preta. E isso fica num só lugar, e eu só chamo o arquivo .css.

 

Enquanto funções que aquele botão tem a exercer, seria mais a própria tag <form> executando o método javascript submit(), enviando uma solicitação a determinado arquivo especificado na propriedade action do mesmo. Neste arquivo php, seria processada uma nova página. Veja que isso já é diferente: Caracteristícas de um objeto lá no seu código PHP que serão devolvidas em HTML para o usuário; e funções javascript que são executadas no lado do cliente, chamando outras funções que são interpretadas em PHP no servidor. Isso fica complicado de entender porque são tecnologias se comunicando.

 

Isso é uma afirmativa relativa. Somos eternos aprendizes, estou sempre aprendendo, e este fórum é a fonte de aprender Padrões de Projeto e OO. O problema é que, a cada dia que passa, sempre acho que meu código não ta legal, ou a forma de padronizar e organizar, o meu OO, se é que você entende. É algo complexo, porém divertido pois sempre tem o que mudar, e quanto mais nós sentimos esta necessidade, mais nós aprendemos. :thumbsup:

 

Também sempre olho pro meu código e falo pra mim mesmo, o que é isso? :(

Mas o negócio é sempre estar estudando essa questão, que agente sempre vai evoluindo mais. Eu mesmo, quando comecei a estudar padrões de projetos, só então entendi realmente OO, e até hoje acho que tenho umas dúvidas. No entanto, lembro quase mais nenhum padrão de projeto, só singleton e MVC, porque a fonte que eu li, não era muito explicativa. Pretendo futuramente comprar aquele livro de padrões de projetos daqueles 4 "caras", que se não me engano é Gang of Four.

 

Por favor, se alguém puder confirmar minhas conclusões, fico agradecido. Espero não estar falando abobrinhas. :/

 

Vlw :D

Share this post


Link to post
Share on other sites

Olá,

Eu tenho uma sugestão para o design:

O quadrado é moda agora, podemos fazer algo estilo windows 8, o que acham?

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.