CS 580 Client-Server Spring Semester, 2004 Introduction |
||
---|---|---|
© 2004, All Rights Reserved, SDSU & Roger Whitney San Diego State University -- This page last updated 13-Jan-04 |
Course Introduction
Course Outline
Introduction
XML-RPC
GUI
Client Development Issues
Concurrency
Source Version Control
Testing
Network Basics
Server Types & Structure
Client-Server Protocols
Logging
Databases
Security
Web based Applications
Main Points of Class
Common design issues & solutions for building a server
Issues in designing a client-server network protocol
Handling Concurrency
Accessing databases
Programming issues dealing with working on client-server code
Programming languages for the Course
Java
What does it mean to “Know” Java, C# or Smalltalk
Basic syntax of the language
Core API
Introduction to Client-Server
What is Client-Server?
Client
What this Course is not
An advanced (or beginning) Networking course
How to use a client builder application/system
What Client-Server Requires of a Programmer
Programming Issues
Naming Convention for Classes, Variables & Methods
Item |
Java |
Smalltalk |
C# |
Class |
PascalCase |
PascalCase |
PascalCase |
Method |
camelCase |
camelCase |
PascalCase |
Field |
camelCase |
camelCase |
CamelCase |
Parameter |
camelCase
|
camelCase
|
camelCase
|
Local
Variable
|
camelCase
|
camelCase
|
camelCase
|
Names
"Finding good names is the hardest part of OO Programming"
"Names should fully and accurately describe the entity the variable represents"
What role does the variable play in the program?
Data
Structure
|
Role,
function
|
InputRec |
EmployeeData |
BitFlag |
PrinterReady |
TrainVelocity |
Velt,
V, X, Train
|
CurrentDate |
CD,
Current, C, X, Date
|
LinesPerPage |
LPP,
Lines, L, X
|
Comments
"Comments are easier to write poorly than well, and comments can be more damaging than helpful"
What does this do?
for i := 1 to Num do MeetsCriteria[ i ] := True; for i := 1 to Num / 2 do begin j := i + i; while ( j <= Num ) do begin MeetsCriteria[ j ] := False; j := j + i; end; for i := 1 to Mun do if MeetsCriteria[ i ] then writeln( i, ' meets criteria ' );
How many comments does this need? for PrimeCandidate:= 1 to Num do IsPrime[ PrimeCandidate] := True; for Factor:= 1 to Num / 2 do begin FactorableNumber := Factor + Factor ; while ( FactorableNumber <= Num ) do begin IsPrime[ FactorableNumber ] := False; FactorableNumber := FactorableNumber + Factor ; end; end; for PrimeCandidate:= 1 to Num do if IsPrime[ PrimeCandidate] then writeln( PrimeCandidate, ' is Prime ' );Good Programming Style is the Foundation of Well Commented Program
Commenting Paragraphs of Code
Write comments at the level of the code's intent
Comment the why rather than the how
Make every comment count
Document surprises
Avoid abbreviations
How verses Why
How
/* if allocation flag is zero */ if ( AllocFlag == 0 ) ...
Why
/* if allocating a new member */ if ( AllocFlag == 0 ) ...
Even Better
/* if allocating a new member */ if ( AllocFlag == NEW_MEMBER ) ...
Summary comment on How
{ check each character in "InputStr" until a dollar sign is found or all characters have been checked } Done := false; MaxPos := Length( InputStr ); i := 1; while ( (not Done) and (i <= MaxLen) ) begin if ( InputStr[ i ] = '$' ) then Done := True else i := i + 1 end;Summary comment on Intent
{ find the command-word terminator } Done := false; MaxPos := Length( InputStr ); i := 1; while ( (not Done) and (i <= MaxPos ) ) begin if ( InputStr[ i ] = '$' ) then Done := True else i := i + 1 end;
Summary comment on Intent with Better Style
{ find the command-word terminator } FoundTheEnd := false; MaxCommandLength := Length( InputStr ); Index := 1; while ((not FoundTheEnd) and (Index <= MaxCommandLength)) begin if ( InputStr[ Index ] = '$' ) then FoundTheEnd := True; else Index := Index + 1; end;
Commenting Data Declarations
Comment the units of numeric data
Comment the range of allowable numeric values
Comment coded meanings
var CursorX: 1..MaxCols; { horizontal screen position of cursor } CursorY: 1..MaxRows; { vertical position of cursor on screen } AntennaLength: Real; { length of antenna in meters: >= 2 } SignalStrength: Integer; { strength of signal in kilowatts: >= 1 } CharCode: 0..255; { ASCII character code } CharAttib: Integer; { 0=Plain; 1=Italic; 2=Bold } CharSize: 4..127; { size of character in points } Comment limitations on input data Document flags to the bit level
Copyright ©, All rights reserved.
2004 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA.
OpenContent license defines the copyright on this document.
    visitors since 13-Jan-04    Next