Software livre e
                               padrões abertos no
                                desenvolvimento
       ...
Felipe Ribeiro
     •Graduando (concluinte) em Ciência da Computação na
      UFCG
     •Zend Certified Engineer - PHP5
   ...
A Web




Saturday, September 19, 2009
A Web



   Softwares distintos se
   comunicando, independente
   de plataforma, fornecedor e
   linguagem de programação...
Como é possível?




Saturday, September 19, 2009
Como é possível?

                               TCP/IP   HTTP


                               HTML     CSS



Saturday, ...
Padrões abertos
         Padrões abertos são padrões
         disponíveis para livre acesso e
       implementação, que in...
Porque padrões
               abertos são
              importantes?




Saturday, September 19, 2009
Em alguns
   lugares do
   oriente
   médio, esse
   gesto...




Saturday, September 19, 2009
seria interpretado assim...




                                Então é melhor usar algo
                                 ...
W3C é um consórcio de empresa que regulamenta os
       padrões da Web, entre eles:
     • HTML
     • XML
         • XHTM...
Saturday, September 19, 2009
HTML5
     •Desenho vetorial em Canvas
     •Armazenamento de informação no cliente
     •Drag-and-drop
     •Tags para ví...
A maioria dos servidores
                       Web roda software livre
Saturday, September 19, 2009
LAMP

                               Linux
                               Apache
                               MySQL
    ...
E isso presta?
                               Na universidade eu aprendi que Java
                                 é a sol...
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
delicious



Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
É... parece que vale a
                                  pena conhecer...




Saturday, September 19, 2009
"PHP is not about purity in CS principles or
      architecture; it is about solving the ugly web
    problem with an admi...
1993




Saturday, September 19, 2009
1993
                     <HTML>
                       <HEAD>
                         <TITLE>My Personal Home Page</
   ...
1994
                       <!--getenv HTTP_USER_AGENT-->
                       <!--ifsubstr $exec_result Mozilla-->
    ...
1995
                       <?
                         $name = "bob";
                         $db = "db";
              ...
2005
                <?php
                class db {
                  protected static $dbh = false;

                  ...
2009
                                          Closures

                               <?php
                            ...
2009
                                       Namespaces

                               <?php

                            ...
Que ferramentas
                                       utilizar no
                               desenvolvimanto?




Sat...
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
Saturday, September 19, 2009
PHP é seguro?




Saturday, September 19, 2009
Free/Open/NetBSD
      são seguros?

                               MS Windows® é
                                      se...
São todos escritos
          principalmente em
                               C!




Saturday, September 19, 2009
A linguagem de
                           programação não é
                                        o fator
              ...
PHP está pronto para
    aplicações “enterprise”?




Saturday, September 19, 2009
XML



Saturday, September 19, 2009
Saturday, September 19, 2009
SOAP
Saturday, September 19, 2009
Saturday, September 19, 2009
REST




Saturday, September 19, 2009
Saturday, September 19, 2009
JSON




Saturday, September 19, 2009
JSON




Saturday, September 19, 2009
Existem pacotes
                                reutilizáveis em
                                           PHP?




Satur...
PEAR




Saturday, September 19, 2009
PEAR

                               PHP
                               Extension and
                               Appli...
Saturday, September 19, 2009
• Pacotes escritos por membros ativos da
        comunidade PHP

     • Tudo  testado por um time exigente de
        cont...
Frameworks

  Para todos os gostos, dos
  mais “Java-like” aos mais
  “Rails-like”


Saturday, September 19, 2009
Frameworks




Saturday, September 19, 2009
E o mercado?
Saturday, September 19, 2009
PHP é a linguagem mais
                                       popular da Web

    O desenvolvimento de
    aplicações é rá...
Grandes players estão
    investindo no PHP

    IBM
    Yahoo!
    Microsoft

                   Mercado amadurecido e
  ...
Quer
       saber mais
         sobre o
            PHP?
          Grupo de desenvolvedores PHP da Paraíba
            III...
<?php

     echo("Dúvidas?");

     $contato = array(
         "nome" => "Felipe Ribeiro",
         "email" => "felipernb@...
Upcoming SlideShare
Loading in …5
×

Software livre e padrões abertos no desenvolvimento Web

5,193 views

Published on

Palestra apresentada no Software Freedom Day 2009 em Campina Grande - PB sobre a importância do uso de padrões abertos e o PHP como uma solução de software livre para desenvolvimento Web

Published in: Technology

Software livre e padrões abertos no desenvolvimento Web

  1. 1. Software livre e padrões abertos no desenvolvimento Web Felipe Ribeiro felipernb@php.net http://feliperibeiro.com @felipernb Saturday, September 19, 2009
  2. 2. Felipe Ribeiro •Graduando (concluinte) em Ciência da Computação na UFCG •Zend Certified Engineer - PHP5 •Trabalha com desenvolvimento Web, atualmente na startup Shoprizer.com •Membro fundador do grupo PHP-PB •Contribuidor do PHP no Google Summer of Code 2009 •Ex-contribuidor do projeto Mozilla Camino Saturday, September 19, 2009
  3. 3. A Web Saturday, September 19, 2009
  4. 4. A Web Softwares distintos se comunicando, independente de plataforma, fornecedor e linguagem de programação Saturday, September 19, 2009
  5. 5. Como é possível? Saturday, September 19, 2009
  6. 6. Como é possível? TCP/IP HTTP HTML CSS Saturday, September 19, 2009
  7. 7. Padrões abertos Padrões abertos são padrões disponíveis para livre acesso e implementação, que independem de royalties e outras taxas e sem discriminação de uso. Saturday, September 19, 2009
  8. 8. Porque padrões abertos são importantes? Saturday, September 19, 2009
  9. 9. Em alguns lugares do oriente médio, esse gesto... Saturday, September 19, 2009
  10. 10. seria interpretado assim... Então é melhor usar algo que todos possam entender! Saturday, September 19, 2009
  11. 11. W3C é um consórcio de empresa que regulamenta os padrões da Web, entre eles: • HTML • XML • XHTML • XPath • XQuery • XSLT • CSS • SVG • SOAP, WSDL (Web Services) • OWL (Web Semântica) Saturday, September 19, 2009
  12. 12. Saturday, September 19, 2009
  13. 13. HTML5 •Desenho vetorial em Canvas •Armazenamento de informação no cliente •Drag-and-drop •Tags para vídeo e áudio, evitando a necessidade de plugins •Polêmica na escolha do padrão de vídeo •Ogg Theora - Padrão aberto •H.264 - Padrão proprietário •Animações •Entre outras coisas Saturday, September 19, 2009
  14. 14. A maioria dos servidores Web roda software livre Saturday, September 19, 2009
  15. 15. LAMP Linux Apache MySQL PHP Saturday, September 19, 2009
  16. 16. E isso presta? Na universidade eu aprendi que Java é a solução para todos os meus problemas. Quem usa PHP? Saturday, September 19, 2009
  17. 17. Saturday, September 19, 2009
  18. 18. Saturday, September 19, 2009
  19. 19. Saturday, September 19, 2009
  20. 20. Saturday, September 19, 2009
  21. 21. delicious Saturday, September 19, 2009
  22. 22. Saturday, September 19, 2009
  23. 23. Saturday, September 19, 2009
  24. 24. Saturday, September 19, 2009
  25. 25. Saturday, September 19, 2009
  26. 26. Saturday, September 19, 2009
  27. 27. É... parece que vale a pena conhecer... Saturday, September 19, 2009
  28. 28. "PHP is not about purity in CS principles or architecture; it is about solving the ugly web problem with an admittedly ugly, but extremely functional and convenient solution. If you are looking for purity, you are in the wrong boat. Get out now before you get hit by a wet cat!" - Rasmus Lerdorf Saturday, September 19, 2009
  29. 29. 1993 Saturday, September 19, 2009
  30. 30. 1993 <HTML> <HEAD> <TITLE>My Personal Home Page</ TITLE> </HEAD> <BODY> This is my cool page<P> And look at my counter<P> <IMG SRC="/cgi-bin/counter.pl"> </BODY> </HTML> Saturday, September 19, 2009
  31. 31. 1994 <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> Hey, you are using Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> Sorry, that record does not exist<p> <!--endif exit--> Welcome <!--$user-->!<p> You have <!--$index:0--> credits left in your account.<p> <!--include /text/footer.html--> Saturday, September 19, 2009
  32. 32. 1995 <? $name = "bob"; $db = "db"; $result = msql($db,"select * from table where firstname='$name'"); $num = msql_numrows($result); echo "$num records found!<p>"; $i=0; while($i<$num); echo msql_result($result,$i,"fullname"); echo "<br>"; echo msql_result($result,$i,"address"); echo "<br>"; $i++; endwhile; > Saturday, September 19, 2009
  33. 33. 2005 <?php class db { protected static $dbh = false; function connect() { self::$dbh = new PDO('mysql:host=localhost;dbname=test','user','pass'); self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } } class items extends db { function load($name) { if(!self::$dbh) $this->connect(); try { if(!self::$dbh) $this->connect(); $stmt = self::$dbh->prepare("SELECT * FROM items WHERE firstname=:name ORDER by ctime desc"); $ret = $stmt->execute(array('name'=>$name)); } catch (PDOException $e) { die($e->getMessage()); } return $ret; } } ?> Saturday, September 19, 2009
  34. 34. 2009 Closures <?php $getClosure = function($v) { return function() use($v) { echo "Hello World: $v!n"; }; }; $closure = $getClosure(2); $closure(); ?> Saturday, September 19, 2009
  35. 35. 2009 Namespaces <?php namespace foo; class bar { function __construct() { echo get_called_class(); } } ?> Saturday, September 19, 2009
  36. 36. Que ferramentas utilizar no desenvolvimanto? Saturday, September 19, 2009
  37. 37. Saturday, September 19, 2009
  38. 38. Saturday, September 19, 2009
  39. 39. Saturday, September 19, 2009
  40. 40. Saturday, September 19, 2009
  41. 41. PHP é seguro? Saturday, September 19, 2009
  42. 42. Free/Open/NetBSD são seguros? MS Windows® é seguro? Saturday, September 19, 2009
  43. 43. São todos escritos principalmente em C! Saturday, September 19, 2009
  44. 44. A linguagem de programação não é o fator determinante na segurança de um sistema Saturday, September 19, 2009
  45. 45. PHP está pronto para aplicações “enterprise”? Saturday, September 19, 2009
  46. 46. XML Saturday, September 19, 2009
  47. 47. Saturday, September 19, 2009
  48. 48. SOAP Saturday, September 19, 2009
  49. 49. Saturday, September 19, 2009
  50. 50. REST Saturday, September 19, 2009
  51. 51. Saturday, September 19, 2009
  52. 52. JSON Saturday, September 19, 2009
  53. 53. JSON Saturday, September 19, 2009
  54. 54. Existem pacotes reutilizáveis em PHP? Saturday, September 19, 2009
  55. 55. PEAR Saturday, September 19, 2009
  56. 56. PEAR PHP Extension and Application Repository Saturday, September 19, 2009
  57. 57. Saturday, September 19, 2009
  58. 58. • Pacotes escritos por membros ativos da comunidade PHP • Tudo testado por um time exigente de controle de qualidade. • Gerenciamento “a la apt-get”: Ex.: pear install Log pear upgrade PHPUnit pear uninstall Text_CAPTCHA Saturday, September 19, 2009
  59. 59. Frameworks Para todos os gostos, dos mais “Java-like” aos mais “Rails-like” Saturday, September 19, 2009
  60. 60. Frameworks Saturday, September 19, 2009
  61. 61. E o mercado? Saturday, September 19, 2009
  62. 62. PHP é a linguagem mais popular da Web O desenvolvimento de aplicações é rápido e menos custoso Startups surgem todos os dias Saturday, September 19, 2009
  63. 63. Grandes players estão investindo no PHP IBM Yahoo! Microsoft Mercado amadurecido e certificações Saturday, September 19, 2009
  64. 64. Quer saber mais sobre o PHP? Grupo de desenvolvedores PHP da Paraíba III Encontro será no dia 31/10/2009 no SEBRAE em João Pessoa Saturday, September 19, 2009
  65. 65. <?php echo("Dúvidas?"); $contato = array( "nome" => "Felipe Ribeiro", "email" => "felipernb@php.net", "blog" => "http://feliperibeiro.com", "twitter" => "@felipernb"); var_dump($contato); ?> Saturday, September 19, 2009

×