vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=187)
-   -   Industry coding standards (https://vborg.vbsupport.ru/showthread.php?t=52230)

filburt1 04-26-2003 10:00 PM

Industry coding standards
 
Half of these are from NASA's Java style guide that I use at work(http://aaa.gsfc.nasa.gov/Files/JavaFinal.doc).

1. Use whitespace liberally for readability:
Wrong:
PHP Code:

if($somevar==aconstant){dothis();dothat();} 

Right:
PHP Code:

if ($somevar == aconstant)
{
    
dothis();
    
dothat();


2. Braces on newlines:
PHP Code:

if ($result) {
    
dowhatever();


Right:
PHP Code:

if ($result)
{
    
dowhatever();


(this might not look important but in big files it greatly helps)

3. Don't exceed 80 chars per line (for code printing and reading on low-res and effectively-low-res environments). No example because it'll break the layout here, but if a line exceeds 80 chars, break it up a bit before 80, and then continue it on the next line while indenting one tab (NASA suggests two tabs but it can make the code very messy).

4. Use a 4-space (not a tab character) indent.
Wrong (right from vB2...):
PHP Code:

if ($HTTP_POST_VARS['action']=="doupload") {

  if (
$HTTP_POST_FILES['avatarfile']) {
    
$avatarfile $HTTP_POST_FILES['avatarfile']['tmp_name'];
    
$avatarfile_name $HTTP_POST_FILES['avatarfile']['name'];
  }
  
copy("$avatarfile","../$avatarpath/$avatarfile_name");

  
$avatarpath.="/$avatarfile_name";

  echo 
"<p>avatar successfuly uploaded</p>";

  
$HTTP_POST_VARS['action']="insert";


Right:
PHP Code:

if ($HTTP_POST_VARS['action'] == "doupload")
{
    if (
$HTTP_POST_FILES['avatarfile'])
    {
        
$avatarfile $HTTP_POST_FILES['avatarfile']['tmp_name'];
        
$avatarfile_name $HTTP_POST_FILES['avatarfile']['name'];
    }
    
copy("$avatarfile","../$avatarpath/$avatarfile_name");
    
    
$avatarpath .= "/$avatarfile_name";
    echo 
"<p>avatar successfuly uploaded</p>";
    
$HTTP_POST_VARS['action'] = "insert";


5. NEVER use deprecated methods of coding. Examples:
1. $HTTP_POST_VARS
2. $somearray[somenonconstant]
3. mysql_db_query()

Fixed:
1. $_POST
2. $somearray['somenonconstant'] (a very common problem that you need to lose!)
3. mysql_query()


There are more and I don't mean to sound pushy, but every single thing I've said in this post is considered the professional industry standard and if you program for a profession then you'd be expected to follow these.

grog6 04-27-2003 06:32 PM

Thx for it Filburt, but we can't consider it as mistakes ... it's just better if you don't work alone, so it is clearer for everybody ;)

I'll take care for it in the future :)

Brad 04-27-2003 07:40 PM

A very good read.

filburt1 04-27-2003 07:58 PM

Quote:

Today at 03:32 PM grog6 said this in Post #2
Thx for it Filburt, but we can't consider it as mistakes ... it's just better if you don't work alone, so it is clearer for everybody ;)

I'll take care for it in the future :)

It's still a good habit to use for when you look back on your code a few months later and think "what the hell was I doing right here?"

colicab-d 04-27-2003 09:26 PM

format of your code is a biggy... and fro some langiages can be a bloody joke.. ie truebasic :mad: , tho i have to admit ive seen a fair few php scripts that over look putting braces on new lines etc.

Its amazing how annoying something like that can be sometimes

Dean C 04-28-2003 12:43 PM

Good tips there filburt :)

- miSt

Xenon 04-28-2003 03:20 PM

everyone started coding in a crappy style i think, but it's improving.

vb3 will follow these standarts above :)

Dean C 04-28-2003 05:39 PM

Well i found out all about indenting by accident in my text editor today. It does it all automatically so... ;)

- miSt


All times are GMT. The time now is 06:09 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03790 seconds
  • Memory Usage 1,741KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete