Desenvolvimento organizado – Pastas nos lugares certos

Organização ou estresse

Organização ou estresse

Dessa vez estou aqui para falar de algo que muitas vezes me incomoda  e é algo simples demais. Estou sempre a procura da metologia de trabalho perfeita, sei que isso é impossível mas acredito que minha busca é o mais importante nesse processo pois aprendo cada vez mais só por tentar. Quero falar da organização de pastas e arquivos usados em um projeto.

Esse é um item simples que ajuda muito depois quando se vai dar manutenção em um projeto ou até mesmo implementar novas funcionalidades. Vou sugerir algumas dicas que talvez lhe ajudem também quando estiver fazendo um site ou sistema.

Pasta para CSS, JS e afins

Essa é muito simples, existem varias formas de se arrumar e com varios nomes que podemos usar, eu sinceramente prefiro sempre a metologia de jogar meus arquivos css, javascript, imagens dentro da pasta “media“, porém voce poderia colocar em algo como “assets“. Sei que pode parecer bobeira mas ajuda muito e já vou explicar o motivo.

Imagine que no diretorio principal do site tem:

/blog/ – onde esta a pasta e arquivos do blog;
/helpdesk/ – arquivos do help desk da empresa;
/admin/ – area administrativa da empresa;

poderia continuar com varios outros arquivos que vejo por ai, e dai quando voce tem que dar manutençao tem arquivo e pasta pra todo lado fica quase impossivel se localizar, dai vem um criatura como você e coloca pelo menos mais 3 pastas(css, js, imagens). Poderia ficar algo como:

/media/images/ – imagens do site ou sistema
/media/css/ – arquivos css ou similares(tipo less ou sass)
/media/js/ – arquivos javascript e similares(tipo jquery, mootools)
/media/swf/ – arquivos flash e similares

Poxa se você colocar tudo numa pasta vai ganhar muito mais espaço visual, sem falar que vai estar arrumando tudo num só lugar, olha que maravilha!!

Pasta “system” pode ajudar muito

Agora se você é um programador que gosta de sair jogando arquivo em todo lugar sem arrumação espero que tenha muito problema pra dar manutenção nesses sistemas, a dica é a mesma lógica, vejamos:

Caso tenha um sistema poderia muito bem deixar tudo mais simples da seguinte forma, vou me basear em varios sites e sistemas que já dei suporte e montar um padrão básico, mas vou pode adaptar de acordo com a necessidade:

/system/  – coloquei aqui arquivos de seu sistema(banco de dados, funções, bibliotecas e afins), pode colocar arquivo de configurações chamado por toda a aplicação se assim for melhor para você, eu prefiro colocar no diretório principal;
/sys-uploads/ – aqui entram os arquivos de upload da sua aplicação, sempre deixe ela no diretorio principal pois quando tiver que fazer alterações na sua aplicação é só não mexer nessa pasta;
/themes/ ou /templates/ – aqui podem entrar todos os arquivos referente ao tema/template de sua aplicação, caso ache melhor pode ate colocar dentro de “system” caso ache melhor;

Muito mais você pode fazer baseado nisso, existe sempre a possibilidade de usar o mod_rewrite do apache para facilitar ainda mais onde por exemplo, tendo um sistema administrativo, poderia colocar dentro de “system” e colocar um rewrite para dentro dessa pasta, algor como:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/(.*)$ system/admin/$1 [L]
</IfModule>

Eu sinceramente espero ter ajudado de alguma forma e espero dar manutenção em sistemas que você organizaram e parabeniza-los.
É isso ai galera.

Abraços.

Desenvolva aplicações Desktop com PHP(sem GTK+) – :)

PHPDesktop - logo

PHPDesktop – logo

PHP Desktop (Chromium) é um projeto de código aberto desenvolvido por Guilherme Alencar para prover um meio de desenvolver aplicações desktop nativas utilizando tecnologias web como PHP, HTML5, JS e SQLite. Engloba um navegador web (Chromium, uma versão livre do navegador Chrome do Google), um servidor web embutido (nativo da linguagem PHP desde a sua versão 5.4.0), e o interpretador PHP, com a extensão sqlite3 para banco de dados da aplicação.

A idéia é inspirada no conceito de SSB (Site-Specific Browser), que consiste em adaptar um navegador para rodar aplicações web no modo desktop de modo específico para sua aplicação. Em alguns navegadores esta funcionalidade é adicionada com Extensões, mas no Chromium esta função é nativa com a opção -app=”site”.

Chromium - Splash

Chromium – Splash

Há um outro projeto PHP Desktop, desenvolvido por Czarek Tomczak (http://code.google.com/p/phpdesktop/), no qual este foi inspirado. O meio utilizado por Czarek para alcançar os seus objetivos é distinto, a saber, compilar uma aplicação com a mesma engine do Chrome utilizando um framework chamado CEF (Chromium Embedded Framework), que se assemelhará a um navegador executando o servidor Web PHP embutido num mesmo executável. Isto será muito mais limpo, rápido e menor. O projeto PHP Desktop de Czarek também é mais abrangente, pois pretende alcançar mais navegadores, enquanto este se prende ao Chromium (embora possa ser implementado para outros navegadores também, por meio de extensões, como já referido).

O projeto de Czarek já criou uma aplicação SSB para Microsoft Internet Explorer, o que é vantajoso, pois o projeto é pequeno por rodar a versão do Internet Explorer do Host, e não um Internet Explorer embutido (isto tem vantagens e desvantagens, pois você nunca saberá que versão do Internet Explorer o Host terá instalado).

A versão para Chromium de Czarek ainda não possui release, e este projeto pode ser utilizado enquanto isso não ocorre.

Outras vantagens de se utilizar este projeto é a possibilidade de utilizar recursos do navegador na sua aplicação, como a opção Ctrl+Print (o que não foi implementado ainda no CEF). Também existe a possibilidade de utilização de Extensões do navegador Chromium na sua aplicação, o que pode acrescentar funcionalidades interessantes.

O modo de desenvolver é o mesmo para uma aplicação Web para WAMP (Windows, Apache, MySQL e PHP). Coloca-se a aplicação na pasta www, em que o primeiro arquivo a ser executado deve-se chamar index.php ou index.html. Depois, basta executar o Launcher.exe que executará o servidor PHP (phpdesktop.exe, que é o mesmo executável do php.exe do zip obtido em php.net), e o navegador Chromium apontando para o endereço 127.0.0.1 na porta 54007 (http://127.0.0.1:54007/). Se a janela for fechada, o executável phpdesktop.exe é eliminado da lista de processos do Windows utilizando Javascript e PHP.

Por enquanto o projeto roda apenas em Windows.

Descrição das Aplicações
PHP 5.4.12, Chromium (Portable) 26.0.1410.5, jQuery Javascript Library 1.6.2.

Extensões do PHP
As extensões utilizadas são: cURL, SQLite3, OpenSSL, PDO (SQLite). Outras extensões podem ser utilizadas baixando-se o zip da versão 5.4.12 do php em php.net e colocando a dll desejada em ext/, e depois ativando-a em php.ini. Extensões sugeridas são GD2 (para geração de imagens) e extensões para habilitar suporte a outros bancos de dados (MySQL, PostgreSQL).

Fonte: http://phpbrasil.com/artigo/YKKOwyby_P7e/desenvolva-aplicacoes-desktop-com-php-nao-nao-e-gtk

Será que tem futuro isso? Eu sinceramente espero que sim 😀
Eu fiz um teste simples e gente funciona mesmo, porém pra aplicações um pouco mais complexas, testem e comentem ai o que dá.

abraços

PHP ou frameworks? Porque migramos?

PHP - Logo

PHP – Logo

Todos os programadores PHP conhecem ao menos um framework PHP que irá lhe auxiliar no desenvolvimento de projetos, ainda mais nos tempos de hoje onde tudo tem que ser o mais rápido possível  e os frameworks nos ajudam nisso, caso o queira usar um provavelmente você desenvolveu o seu próprio que lhe ajuda muito nos projetos que faz, espero que entendam o ponto que quero destacar aqui.

Zend Framework - Logo

Zend Framework – Logo

Alguns programadores que usam frameworks PHP de tempos em tempos migram de framework, seja por uma facilidade a mais, ou por outros motivos, mas um fato que tenho visto ocorrer muito é por aprender algo novo com o novo framework, o que na verdade não é do framwork e sim do PHP que por muitas vezes já existia até em versões antigas, porém pelo fato de o framework ter apresentado um nova forma de usar que seja mais bonita ou mais prática, tais programadores acham o framework inovador e tudo o mais.

Codeigniter - Logo

Codeigniter – Logo

Contudo e venho me perguntando sobre tais metodologias, pois nem sempre o que o framework está a oferecer é o melhor em processamento ou agilidade e acredito que seja algo que devemos nos preocupar pois eu como desenvolvedor/programador tenho que me preocupar muito com velocidade que trabalho com web onde temos acessos simultaneos enormes e nem todo servidor suporta tao facilmente, isso me lembro o WordPress( que não considero como framework) onde no inicio há anos atrás tinha um “plugin” de estatisticas muito na moral.

No entanto ele tinha um enorme problema consumia grande quantidade do processamento e como o WP é muito usado e hospedagem compartilhadas isso era um “problemão”, entao desativaram e deixou de ser uma ferramenta padrão do WP, o que quero dizer com isso, é que nós temos que aprender com a evolução e não nos adaptar com o que nós é oferecido somente, eu aprendo muito com varios frameworks php, cada um possui sua própria metodologia, porém não é por isso que vou usar o framework no meu dia a dia, posso simplesmente adaptar a metologia ao framework php que eu estiver usando seja um framework desenvolvido por mim ou pela comunidade.

Laravel - Logo

Laravel – Logo

Não espero criar discussão sobre o que é melhor, e sim faze-los pensar nos caminhos que a comunidade PHP tem se guiado.

abraços e até mais. 😀

Qual Windows usar/comprar Windows 7 ou 8?

Microsoft Windows 8

Microsoft Windows 8

Para quem trabalha com desenvolvimento web, é muito importante está por dentro do que o usuário mais tem usado ou que vai usar, eu mesmo comprei um notebook no final de fevereiro/2013 da LG que já vem com Windows 8, porém qual melhor pra usar? Temos que pensar no que o usuário mais tem usado, eu sinceramente amo linux, principalmente o Debian, pois sou programador e gosto de mexer no código fonte, no geral sou meio preguiçoso mas se um erro me incomoda muito eu corrijo.

Para ajudar vocês a terem uma noção melhor de qual Windows usar, tem um video do ano passado do Baixaki, que é bem legal, contudo pessoal lembrem-se sempre que temos que pensar nos seguintes itens:

– Carregar a página o mais rápido possível, evitando vários requests ao servidor(coloque todo CSS num arquivo minificado, faça o mesmo com javascript);

Microsoft Windows 7

Microsoft Windows 7

– Processamento dos dados bem ágil, evite longos caminhos só pra retornar dados que podem ser pegos de forma simples e rápida, evite POGs;
– Hoje em dia não é só PC que temos que nos preocupar, tem Notebook, Tablet, Smartphone, e outros, então temos que pensar nessas criaturas que usam das mais variadas formas, o maior número de acesso do meu blog tem sido via Windows 7(até começo de Março/2013), seguindo de Windows XP e Windows 8, fiquei surpreso, mas Windows 8 logo estará popular, só demora pois é muito recente e mal lançaram o Windows 7, mas todo mundo irá migrar, é praticamente forçado a isso, daqui a 1 ou 2 anos não teremos mais suporte ao XP depois nem Windows  7;
– Tente pensar como o usuário vai te ajudar bastante;

O que gostei desse vídeo é que eles fazem vários testes que servem tanto pra Gamers, quanto pra quem trabalhar com ferramentes como Photoshop que é o meu caso, e sofro com isso hehehe.

Enfim, espero que tenham gostado e assim que possível posto um video ou algo sobre meu Notebook da LG com Windows  8.

Abraços, fui 🙂

Twitter Bootstrap – Layout bonito em menos tempo

Twitter Bootstrap

Twitter Bootstrap

Quem nunca usou o Twitter Bootstrap, tá perdendo tempo, existe ferramentas similares, porém o nível de crescimento da comunidade em torno dele tem sido grande, nesse post irei mostrar alguns motivos pra usar o Twitter Bootstrap, você pode até ter os mesmos motivos pra usar outro, mas mesmo assim tem que experimentar as coisas que ele te oferece.

Sobre o Twitter Bootstrap

Praticamente é um framework pra desenvolvimento web, em outras palavras, é um kit de ferramentas para te ajudar e acelerar na criação de sites com HTML, CSS. Obviamente pelo nome já se sabe que foi que desenvolveu o bonitinho, rsrs. Para agilizar, principalmente, o desenvolvimento o CSS é feito com LESS(que nada mais é que um compilador de CSS, muito bom), veja essa matéria do TableLess(em português) que fala um pouco mais sobre.

Caso queira saber mais detalhes, visite o Twitter Bootstrap(wikipedia – em inglês) e Twitter Bootstrap(página oficial)
O Grande Alexandre Magno(Globo.com) , fez a tradução da documentação do Twitter Bootstrap em português para quem ainda não é tão familiarizado com o Inglês, vale a leitura.

1) Trabalha com LESS

LESS

LESS

Esse ponto é muito importante, pelo fato de você ganhar tempo no desenvolvimento, mas também na manutenção de seu código CSS, pois quando precisar mudar bordas arredondas e afins, basta alterar o arquivo LESS, compilar e pronto, que será aplicado em todas as partes que usam aquele classe.

2) “As feias que me desculpem, mas beleza é fundamental” – Vinicius de Moraes

Uma coisa que podemos afirmar é que o visual fica muito melhor do que quando fazemos o nosso próprio, eu digo por mim mesmo, algumas pessoas me consideram um ótimo programador/desenvolvedor, porém eu sempre falo que nunca fui bom designer, sempre fiz umas coisas feias e nunca ficam bonitinhas, contudo, olha que maravilha, quando uso o Bootstrap, o padrão de cores e layout já ta todo praticamente definido, agora os clientes já falam que ficou muito bonito, e não como era antigamente(muitos anos atrás), cliente: “Ah, tá bom, dá pra usar” e eu: “:(” . Então posso dizer que o UX Designer já tá praticamente pronto, mas que beleza, hein?!

3) Totalmente Open Source e no GitHub

Essa podemos dizer que é uma das melhores, e talvez até o motivo de ser tão popular. Ele é Open Source, e pra deixar ainda melhor está disponível no GitHub que usa o sistema de controle de versão Git, quem está acostumado a desenvolver usando Git sabe como é bom.

4) Layout Responsive

Ele já é feito pensando em layout responsive, então pra que se preocupar com isso, se o Twitter Bootstrap já faz? A-ham, te peguei né?!  Eu sinceramente ainda não tenho testado nada com Layout Responsive, mas tem sido muito usado, o fato de eu não usar é que moro atualmente no interior, e o povo não liga muito pra nada, o que é muito triste. Porém vamos levando a vida como dá.

5) CSS Grid

Qual seria o motivo de você achar que ele não teria CSS Grid? Aff, que coisa feia garoto(a), obviamente ele já tem e uma coisa que acho muito legal é facilidade de usar, e caso já tenha seu layout todo em CSS Grid, mas precisa mudar para um layout responsive, simples só alterar a class: “container” e/ou “row” para “container-fluid” e/ou “row-fluid” eu amo isso, claro que em alguns casos não será tao simples assim, vai depender mais de como seu layout foi montado também.

6) Iconizar conquista clientes

Certa vez ouvi isso e com o passar dos anos desde que comecei a programar em Visual Basic 6(é comecei por ai, depois que fui pra WEB, o mundo da voltas, hehehe), fui percebendo que quando tem ícones e “imagenzinhas”(cliente adora fazer no diminutivo), isso vende mais, o usuário em geral é preguiçoso e quando colocamos ícones ele já nem lê mais, já vai direto no ícone que ta acostumado. Então falei isso tudo, só pra dizer que o Twitter Bootstrap já tem ícones também, eles usam o Glyphicons. Eu acho os ícones básicos e bonitos que se adaptam a qualquer layout, por serem “monocromáticos”.

7) Vai um tema aí, tio

{wrap}bootstrap - Twitter Bootstrap Themes

{wrap}bootstrap – Twitter Bootstrap Themes

Esse você tem que gostar, ops, olha eu dando ordem ai, hehehe. O mas legal que acho é que certa vez precisei de algo diferente pra um layout de um sistema administrativo, não gosto de usar sempre o mesmo layout, de tempos em tempos gosto de inovar, mudar, evoluir, então pensei posso será que tem templates feitos com twitter bootstrap, nossa pra minha surpresa apareceu muita coisa boa, e pra melhorar ainda achei uma coisa muito legal, que o {wrap}bootstrap que é um site só com temas feitos em twitter bootstrap, poxa o legal é que você pode fazer um layout todo seu usando twitter bootstrap e vender por meio desse site, agora quando eu conseguir isso(fazer meu layout mega bonito), devo ganhar um dólar, hehehe.

Então caso tenha ficado interessado no {wrap}bootstrap faz uma visita e veja os vários layouts legais que tem que lá. Caso não queira vender seus temas, pelo menos serve como inspiração pois são simples e legais.

8) Javascript

Para que você não perca tempo procurando plugins jquery e afins de galerias e outras pequenas coisas, o Twitter Bootstrap já vem com algumas muito legais como Tooltip, Galeria de imagens, Modals, e várias outras coisas que te fazem ganhar um tempo bom, sem precisar ficar correndo atrás de plugins que as vezes nem funciona principalmente por incompatibilidade, não sofrerá com isso se já usar o do próprio bootstrap. Óbvio que ele não tem tudo, mas já tem os principais pra uma aplicação/site “Cool”

Conclusão

Eu poderia continuar falando sobre as várias coisas que o twitter bootstrap e com certeza não coloquei todas as coisas legais que ele oferece, contudo deixo aqui a dica pra você testar e analisar tudo de bom que ele oferece. Com toda certeza tem pessoas bem melhores que eu pra te ajudar a fazer um trabalho muito melhor pra seu cliente ou empresa, porém eu podendo te ajudar, tamo ai pra isso também.

Caso não queira usar tudo que o Twitter Bootstrap oferece, você pode também baixar uma versão customizada com somente o que você precisa pra evitar carregar conteúdo que não usará, e pra isso basta usar o Customize do boostrap que ele irá gerar os arquivos com o que você selecionou.

Então é isso, galera.

Abraços (nos macho),
Abraços e beijos(nas gatinhas, se for nerd melhor hehehe)