Project

General

Profile

« Previous | Next » 

Revision 11737

web/links/index.htm: updated to Firefox bookmarks. added API writing links, including the best quotes from a Google developer's PowerPoint on the topic.

View differences:

web/links/index.htm
287 287
<DD>page's description: Redmine
288 288
            <DT><A HREF="https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki" name="https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki" ADD_DATE="1318280630" ICON_URI="https://projects.nceas.ucsb.edu/nceas/favicon.ico?1347421715" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://projects.nceas.ucsb.edu/nceas/favicon.ico?1347421715" style="margin-right: 0.5em;"/>BIEN - Wiki - NCEAS Projects</A><a name="BIEN - Wiki - NCEAS Projects" href="#BIEN - Wiki - NCEAS Projects" style="margin-left: 0.5em;">&para;</a>
289 289
<DD>page's description: Redmine
290
            <DT><A HREF="https://pods.iplantcollaborative.org/wiki/display/sciplant/BIEN+Database+3.0" name="https://pods.iplantcollaborative.org/wiki/display/sciplant/BIEN+Database+3.0" ADD_DATE="1385071786" ICON_URI="https://pods.iplantcollaborative.org/wiki/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://pods.iplantcollaborative.org/wiki/favicon.ico" style="margin-right: 0.5em;"/>BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki</A><a name="BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki" href="#BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki" style="margin-left: 0.5em;">&para;</a>
290 291
            <DT><A HREF="http://www.iplantcollaborative.org/node/1044" name="http://www.iplantcollaborative.org/node/1044" ADD_DATE="1317675381" ICON_URI="http://www.iplantcollaborative.org/sites/all/themes/iplant/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://www.iplantcollaborative.org/sites/all/themes/iplant/favicon.ico" style="margin-right: 0.5em;"/>BIEN Project | iPlant Collaborative Web Portal</A><a name="BIEN Project | iPlant Collaborative Web Portal" href="#BIEN Project | iPlant Collaborative Web Portal" style="margin-left: 0.5em;">&para;</a>
291 292
            <DT><A HREF="http://chac.iplantcollaborative.org/documents/bien.pdf" name="http://chac.iplantcollaborative.org/documents/bien.pdf" ADD_DATE="1317674748"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>bien.pdf</A><a name="bien.pdf" href="#bien.pdf" style="margin-left: 0.5em;">&para;</a>
292 293
            <DT><A HREF="http://vegpath.org/links/" name="http://vegpath.org/links/" ADD_DATE="1366942991" ICON_URI="http://vegpath.org/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://vegpath.org/favicon.ico" style="margin-right: 0.5em;"/>Bookmarks</A><a name="Bookmarks" href="#Bookmarks" style="margin-left: 0.5em;">&para;</a>
......
484 485
            <DT><A HREF="http://www.nceas.ucsb.edu/" name="http://www.nceas.ucsb.edu/" ADD_DATE="1318527006" ICON_URI="http://www.nceas.ucsb.edu/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://www.nceas.ucsb.edu/favicon.ico" style="margin-right: 0.5em;"/>Welcome to NCEAS | NCEAS</A><a name="Welcome to NCEAS | NCEAS" href="#Welcome to NCEAS | NCEAS" style="margin-left: 0.5em;">&para;</a>
485 486
            <DT><A HREF="http://help.nceas.ucsb.edu/Main_Page" name="http://help.nceas.ucsb.edu/Main_Page" ADD_DATE="1367497633" ICON_URI="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" style="margin-right: 0.5em;"/>main_page [NCEAS Computing Services Knowledge Base]</A><a name="main_page [NCEAS Computing Services Knowledge Base]" href="#main_page [NCEAS Computing Services Knowledge Base]" style="margin-left: 0.5em;">&para;</a>
486 487
            <DT><A HREF="http://help.nceas.ucsb.edu/user_accounts" name="http://help.nceas.ucsb.edu/user_accounts" ADD_DATE="1360417540" ICON_URI="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" style="margin-right: 0.5em;"/>user_accounts [NCEAS Computing Services Knowledge Base]</A><a name="user_accounts [NCEAS Computing Services Knowledge Base]" href="#user_accounts [NCEAS Computing Services Knowledge Base]" style="margin-left: 0.5em;">&para;</a>
488
            <DT><A HREF="https://identity.nceas.ucsb.edu/identity/cgi-bin/ldapweb.cgi?cfg=account&stage=changepass" name="https://identity.nceas.ucsb.edu/identity/cgi-bin/ldapweb.cgi?cfg=account&stage=changepass" ADD_DATE="1385082224" LAST_CHARSET="windows-1252"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>NCEAS Identity Manager (to change password)</A><a name="NCEAS Identity Manager (to change password)" href="#NCEAS Identity Manager (to change password)" style="margin-left: 0.5em;">&para;</a>
487 489
            <DT><A HREF="http://help.nceas.ucsb.edu/Staff_Computer_Setup#Thunderbird" name="http://help.nceas.ucsb.edu/Staff_Computer_Setup#Thunderbird" ADD_DATE="1318292192" ICON_URI="http://help.nceas.ucsb.edu/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/favicon.ico" style="margin-right: 0.5em;"/>Staff Computer Setup - NCEAS Knowledge Base</A><a name="Staff Computer Setup - NCEAS Knowledge Base" href="#Staff Computer Setup - NCEAS Knowledge Base" style="margin-left: 0.5em;">&para;</a>
488 490
            <DT><A HREF="https://mail.nceas.ucsb.edu/webmail/" name="https://mail.nceas.ucsb.edu/webmail/" ADD_DATE="1318291902" ICON_URI="https://mail.nceas.ucsb.edu/webmail/skins/default/images/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://mail.nceas.ucsb.edu/webmail/skins/default/images/favicon.ico" style="margin-right: 0.5em;"/>NCEAS Webmail :: Welcome to NCEAS Webmail</A><a name="NCEAS Webmail :: Welcome to NCEAS Webmail" href="#NCEAS Webmail :: Welcome to NCEAS Webmail" style="margin-left: 0.5em;">&para;</a>
489 491
            <DT><A HREF="http://support.nceas.ucsb.edu/rt/" name="http://support.nceas.ucsb.edu/rt/" ADD_DATE="1319052273" ICON_URI="http://support.nceas.ucsb.edu/rt/NoAuth/images/favicon.png"><img width="16" height="16" src="http://support.nceas.ucsb.edu/rt/NoAuth/images/favicon.png" style="margin-right: 0.5em;"/>support</A><a name="support" href="#support" style="margin-left: 0.5em;">&para;</a>
......
1377 1379
            </DL><p>
1378 1380
            <DT><a name="software concepts" href="#software concepts"><H3 ADD_DATE="1368357824">software concepts</H3></a>
1379 1381
            <DL><p>
1382
                <DT><a name="APIs" href="#APIs"><H3 ADD_DATE="1385418735">APIs</H3></a>
1383
                <DL><p>
1384
                    <DT><A HREF="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" name="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" ADD_DATE="1385418740" LAST_CHARSET="UTF-8"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>**** How to Design a Good API and Why it Matters</A><a name="**** How to Design a Good API and Why it Matters" href="#**** How to Design a Good API and Why it Matters" style="margin-left: 0.5em;">&para;</a>
1385
<DD>&quot;Public APIs are forever - one chance to get it right&quot;
1386

  
1387
&quot;Code lives on as examples, unit tests
1388

  
1389
&quot;Your job is to extract true requirements
1390
_
1391
Should take the form of
1392
use-cases&quot;
1393

  
1394
&quot;Write multiple plug-ins before release [...] If you write three, it will work fine&quot;
1395

  
1396
&quot;You
1397
won&#39;t
1398
be
1399
able
1400
to
1401
please
1402
everyone
1403
_
1404
Aim
1405
to
1406
displease
1407
everyone
1408
equally&quot;
1409

  
1410
&quot;Expect to evolve API&quot;
1411

  
1412
&quot;You can always add, but you can never remove&quot;
1413

  
1414
&quot;Names Should Be Largely Self-Explanatory
1415
_
1416
Avoid
1417
cryptic
1418
abbreviations&quot;
1419

  
1420
&quot;Parameter: indicate units, form, ownership&quot;
1421

  
1422
&quot;Dimension
1423
is mutable
1424
1425
Each
1426
getSize
1427
call must allocate
1428
Dimension
1429
1430
Causes
1431
millions
1432
of needless object allocations&quot;
1433

  
1434
&quot;Classes should be immutable unless there
1435
1436
s a
1437
good reason to do otherwise&quot;
1438

  
1439
&quot;Reduce need for
1440
boilerplate code
1441
_
1442
Generally done via cut-and-paste&quot;
1443

  
1444
&quot;Overload
1445
With
1446
Care [...] no two with same number of
1447
args&quot;
1448

  
1449
&quot;Three or fewer parameters is ideal&quot;
1450

  
1451
&quot;Create helper class to hold parameters&quot;
1452
                </DL><p>
1380 1453
                <DT><A HREF="http://en.wikipedia.org/wiki/Scope_%28programming%29#Dynamic_scoping" name="http://en.wikipedia.org/wiki/Scope_%28programming%29#Dynamic_scoping" ADD_DATE="1368357608" ICON_URI="http://bits.wikimedia.org/favicon/wikipedia.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://bits.wikimedia.org/favicon/wikipedia.ico" style="margin-right: 0.5em;"/>Dynamic scoping &lt; Scope (computer science) - Wikipedia, the free encyclopedia</A><a name="Dynamic scoping &lt; Scope (computer science) - Wikipedia, the free encyclopedia" href="#Dynamic scoping &lt; Scope (computer science) - Wikipedia, the free encyclopedia" style="margin-left: 0.5em;">&para;</a>
1381 1454
<DD>&quot;Dynamic scoping also voids all the benefits of referential transparency&quot;
1382 1455

  

Also available in: Unified diff