From fd4d555c0c791c759b0d06a8f606a2d087f62106 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 13 Sep 2008 12:11:05 +0000 Subject: messe sezioni git-svn-id: svn://luxion/repos/best-practices@372 fcb26f47-9200-0410-b104-b98ab5b095f3 --- pbp.content.tex | 65 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/pbp.content.tex b/pbp.content.tex index e6c9da3..ce70c13 100644 --- a/pbp.content.tex +++ b/pbp.content.tex @@ -47,9 +47,13 @@ Questo intervento \end{frame} \begin{frame}\frametitle{Per gli impazienti} +\begin{center} {\huge Scrivi sempre codice come se la persona che lo deve mantenere fosse un violento psicopatico che sa dove abiti} +\end{center} \end{frame} +\section{Spaziatura} + \begin{frame}[fragile]\frametitle{Spaziatura} \begin{lstlisting} my@result=(1,2,3); @@ -85,6 +89,8 @@ while (my_func($param,$param2)) { \end{lstlisting} \end{frame} +\section{Nomi} + \begin{frame}[fragile]\frametitle{Nomi} \begin{itemize} \item date nomi comprensibili e non ambigui (\lstinline|$totale_finora|, \lstinline|$utente_attuale|, \lstinline|&è_valido|) @@ -96,6 +102,8 @@ while (my_func($param,$param2)) { \end{itemize} \end{frame} +\section{Valori} + \begin{frame}[fragile]\frametitle{Valori} \begin{itemize} \item usate \lstinline|'virgolette semplici'| tranne quando \lstinline|"dovete $interpolare\n"| %$ @@ -105,6 +113,8 @@ while (my_func($param,$param2)) { \end{itemize} \end{frame} +\section{Variabili} + \begin{frame}[fragile]\frametitle{Variabili} \begin{itemize} \item dichiarate sempre le variabili con \lstinline|my| @@ -116,6 +126,8 @@ while (my_func($param,$param2)) { \end{itemize} \end{frame} +\section{Flusso} + \begin{frame}[fragile]\frametitle{Controlli di flusso} \begin{itemize} \item usate \lstinline|if| posposto solo per semplici istruzioni, tipicamente controlli nei cicli: \lstinline|next CICLO if !mi_serve($elemento);| %$ @@ -155,17 +167,19 @@ sub esegui_comando { \item usate i comandi di controllo cicli (\lstinline|next|, \lstinline|last|, \lstinline|continue|, \lstinline|redo|) \item etichettate sempre i cicli in cui usate quei comandi: \begin{lstlisting} - CLIENTE: - while (my $cliente_corrente = - $clienti->next()) { - next CLIENTE - if ! $cliente_corrente->attivo; - usa_cliente($cliente_corrente); - } - \end{lstlisting} +CLIENTE: +while (my $cliente_corrente = + $clienti->next()) { + next CLIENTE + if ! $cliente_corrente->attivo; + usa_cliente($cliente_corrente); +} +\end{lstlisting} \end{itemize} \end{frame} +\section{Documentazione} + \begin{frame}[fragile]\frametitle{Documentazione e commenti} \begin{itemize} \item usate POD per la documentazione utente @@ -176,6 +190,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{Built-in} + \begin{frame}[fragile]\frametitle{Funzioni predefinite} \begin{itemize} \item studiate la ``Orcish manoeuvre'' e la ``Schwartzian transform'' @@ -191,6 +207,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{Subroutine} + \begin{frame}[fragile]\frametitle{Subroutine} \begin{itemize} \item \lstinline|fai_qualcosa(@argomenti)|, non \lstinline|&fai_qualcosa @argomenti| @@ -202,9 +220,17 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{I/O} + \begin{frame}[fragile]\frametitle{I/O} \begin{itemize} -\item \lstinline|open my $fh,'<',$nomefile| \lstinline|or croak qq{Impossibile aprire "$nomefile": $!};| invece che \lstinline|open FH,$nomefile;| %$ +\item \begin{lstlisting} +open my $fh,'<',$nomefile +or croak qq{Impossibile aprire "$nomefile": $!}; +\end{lstlisting} +invece che \begin{lstlisting} +open FH,$nomefile; +\end{lstlisting} %$ \item<2> filehandle lessicali \item<2> \lstinline|open| a 3 argomenti \item<2> controllate sempre il valore di ritorno @@ -221,6 +247,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{References} + \begin{frame}[fragile]\frametitle{References} \begin{itemize} \item non usate \emph{mai} reference simboliche (\lstinline|"${nome}_tipo"=5|) %$ @@ -229,6 +257,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{Regex} + \begin{frame}[fragile]\frametitle{Espressioni regolari} \begin{itemize} \item usate sempre \lstinline|/xms| @@ -237,11 +267,20 @@ sub esegui_comando { \item \lstinline|m{...}smx|, non \lstinline|/.../| \item \lstinline|\p{Uppercase}\p{Alphabetic}|, non \lstinline|[A-Z][a-zA-Z]| \item attenti alla differenza tra \lstinline|.*| e \lstinline|.*?| -\item \lstinline|my ($nome,$valore) =| \lstinline|($linea=~m{\A (\w+) \s*=\s* (.*?) \z}smx)|, non \lstinline|$linea=~m{^(\w+)\s*=\s*(.*?)$};| \lstinline|my ($nome,$valore)=($1,$2)| %$ +\item \begin{lstlisting} +my ($nome,$valore) = + ($linea=~m{\A (\w+) \s*=\s* (.*?) \z}smx) +\end{lstlisting} +invece che \begin{lstlisting} +$linea=~m{^(\w+)\s*=\s*(.*?)$}; +my ($nome,$valore)=($1,$2) +\end{lstlisting} %$ \item studiate \lstinline|Regexp::Common| \end{itemize} \end{frame} +\section{Eccezioni} + \begin{frame}[fragile]\frametitle{Eccezioni} \begin{itemize} \item lanciate eccezioni, non impostate flag o valori di ritorno @@ -251,6 +290,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{OOP} + \begin{frame}[fragile]\frametitle{Oggetti} \begin{itemize} \item usate \lstinline|Moose| @@ -261,6 +302,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{Moduli} + \begin{frame}[fragile]\frametitle{Moduli} \begin{itemize} \item non ripetete mai il codice: fattorizzate \emph{sempre} @@ -271,6 +314,8 @@ sub esegui_comando { \end{itemize} \end{frame} +\section{Varie} + \begin{frame}[fragile]\frametitle{Varie} \begin{itemize} \item scrivete test, e usateli -- cgit v1.2.3