|
|
|
|
LEADER |
00000cam a2200000Ma 4500 |
001 |
OR_ocn739838992 |
003 |
OCoLC |
005 |
20231017213018.0 |
006 |
m o d |
007 |
cr zn||||||||| |
008 |
110529s2011 inua ob 001 0 eng d |
010 |
|
|
|z 2010939958
|
040 |
|
|
|a COO
|b eng
|e pn
|c COO
|d UMI
|d N$T
|d B24X7
|d YDXCP
|d OUP
|d E7B
|d HEBIS
|d EBLCP
|d OCLCQ
|d DEBSZ
|d OCLCQ
|d CDX
|d OCLCF
|d OCLCQ
|d AZK
|d LOA
|d JBG
|d AGLDB
|d MOR
|d PIFAG
|d ZCU
|d LIV
|d MERUC
|d OCLCQ
|d NJR
|d U3W
|d BRL
|d STF
|d WRM
|d VTS
|d CEF
|d NRAMU
|d ICG
|d INT
|d VT2
|d AU@
|d COO
|d OCLCQ
|d WYU
|d OCLCQ
|d UAB
|d A6Q
|d DKC
|d OCLCQ
|d M8D
|d OCLCQ
|d UKCRE
|d VLY
|d BRF
|d OCLCO
|d OCLCQ
|
019 |
|
|
|a 750328790
|a 773015602
|a 842961826
|a 961547296
|a 962591326
|a 966233552
|a 988534487
|a 991956597
|a 1037431733
|a 1038630205
|a 1045438797
|a 1058141110
|a 1083597004
|a 1153491176
|a 1162526197
|
020 |
|
|
|a 9781118098226
|q (electronic bk.)
|
020 |
|
|
|a 1118098226
|q (electronic bk.)
|
020 |
|
|
|a 0470872497
|
020 |
|
|
|a 9780470872499
|
020 |
|
|
|z 9780470872499
|q (pbk. ;
|q alk. paper)
|
020 |
|
|
|z 0470872497
|q (pbk. ;
|q alk. paper)
|
020 |
|
|
|z 9781118098240
|
020 |
|
|
|z 9781118098233
|
020 |
|
|
|a 1283397862
|
020 |
|
|
|a 9781283397865
|
020 |
|
|
|a 9786613397867
|
020 |
|
|
|a 6613397865
|
024 |
3 |
|
|a 9780470872499
|
029 |
1 |
|
|a AU@
|b 000050981022
|
029 |
1 |
|
|a AU@
|b 000051558679
|
029 |
1 |
|
|a AU@
|b 000052900529
|
029 |
1 |
|
|a CHNEW
|b 000615419
|
029 |
1 |
|
|a DEBBG
|b BV043121131
|
029 |
1 |
|
|a DEBBG
|b BV044154991
|
029 |
1 |
|
|a DEBSZ
|b 368469816
|
029 |
1 |
|
|a DEBSZ
|b 372886205
|
029 |
1 |
|
|a DEBSZ
|b 397002726
|
029 |
1 |
|
|a DEBSZ
|b 421528486
|
029 |
1 |
|
|a HEBIS
|b 291536948
|
029 |
1 |
|
|a HEBIS
|b 299834123
|
029 |
1 |
|
|a NZ1
|b 14257305
|
029 |
1 |
|
|a AU@
|b 000073102547
|
035 |
|
|
|a (OCoLC)739838992
|z (OCoLC)750328790
|z (OCoLC)773015602
|z (OCoLC)842961826
|z (OCoLC)961547296
|z (OCoLC)962591326
|z (OCoLC)966233552
|z (OCoLC)988534487
|z (OCoLC)991956597
|z (OCoLC)1037431733
|z (OCoLC)1038630205
|z (OCoLC)1045438797
|z (OCoLC)1058141110
|z (OCoLC)1083597004
|z (OCoLC)1153491176
|z (OCoLC)1162526197
|
037 |
|
|
|a CL0500000106
|b Safari Books Online
|
050 |
|
4 |
|a QA76.73.P224
|b B47 2011eb
|
072 |
|
7 |
|a COM
|x 051230
|2 bisacsh
|
072 |
|
7 |
|a COM
|x 051240
|2 bisacsh
|
082 |
0 |
4 |
|a 005.12
|2 22
|
049 |
|
|
|a UAMI
|
100 |
1 |
|
|a Bergmann, Sebastian,
|d 1978-
|
245 |
1 |
0 |
|a Real-world solutions for developing high-quality PHP frameworks and applications /
|c Sebastian Bergmann, Stefan Priebsch.
|
260 |
|
|
|a Indianapolis, Ind. :
|b Wiley Pub.,
|c ©2011.
|
300 |
|
|
|a 1 online resource (xxix, 378 pages) :
|b illustrations
|
336 |
|
|
|a text
|b txt
|2 rdacontent
|
337 |
|
|
|a computer
|b c
|2 rdamedia
|
338 |
|
|
|a online resource
|b cr
|2 rdacarrier
|
490 |
1 |
|
|a Wrox guides
|
504 |
|
|
|a Includes bibliographical references and index.
|
505 |
0 |
0 |
|g Machine generated contents note:
|g ch. 1
|t Software Quality --
|t External Quality --
|t Internal Quality --
|t Technical Debt --
|t Constructive Quality Assurance --
|t Clean Code --
|t Explicit and Minimal Dependencies --
|t Clear Responsibilities --
|t No Duplication --
|t Short Methods with Few Execution Branches --
|t Software Metrics --
|t Cyclomatic Complexity and npath Complexity --
|t Change Risk Anti-Patterns (CRAP) Index --
|t Non-Mockable Total Recursive Cyclomatic Complexity --
|t Global Mutable State --
|t Cohesion and Coupling --
|t Tools --
|t PHPUnit --
|t phploc --
|t PHP Copy-Paste-Detector (phpcpd) --
|t PHP Dead Code Detector (phpdcd) --
|t PHP Depend (pdepend) --
|t PHP Mess Detector (phpmd) --
|t PHP CodeSniffer (phpcs) --
|t bytekit-cli --
|t PHP CodeBrowser (phpcb) --
|t CruiseControl and phpUnderControl --
|t Hudson --
|t Arbit --
|t Conclusion --
|g ch. 2
|t Software Testing --
|t Black Box and White Box Tests --
|t How Many Tests Are Needed? --
|t System Tests --
|t Browser Testing --
|t Automated Tests --
|t Test Isolation --
|t Acceptance Tests.
|
505 |
0 |
0 |
|t Limits of System Tests --
|t Unit Tests --
|t Return Values --
|t Dependencies --
|t Side Effects --
|t Real-Life Example --
|t Analyzing the Code to Test --
|t Setting Up a Test Environment --
|t Avoid Global Dependencies --
|t Test Independently from Data Sources --
|t Testing Asynchronous Events --
|t Storing Changes in the Database --
|t Unpredictable Results --
|t Encapsulating Input Data --
|t Further Reflections --
|t Conclusion --
|g ch. 3
|t TYPO3: The Agile Future Of A Ponderous Project --
|t Introduction --
|t The History of TYPO3: Thirteen Years in Thirteen Paragraphs --
|t Daring to Start Over! --
|t Our Experience with Testing --
|t Policies and Techniques --
|t Bittersweet Elephant Pieces --
|t Test-Driven Development --
|t Tests as Documentation --
|t Continuous Integration --
|t Clean Code --
|t Refactoring --
|t Programming Guidelines --
|t Domain-Driven Design --
|t Course of Action in Development --
|t Developing New Code --
|t Extending and Modifying Code --
|t Optimizing Code --
|t Speed --
|t Readability --
|t Finding and Fixing Bugs --
|t Disposing of Old Code --
|t Test Recipes --
|t Inadvertently Functional Unit Test.
|
505 |
0 |
0 |
|t Access to the File System --
|t Constructors in Interfaces --
|t Testing Abstract Classes --
|t Testing Protected Methods --
|t Use of Callbacks --
|t Into the Future --
|g ch. 4
|t Unit Testing Bad Practices --
|t Why Test Quality Matters --
|t Bad Practices and Test Smells --
|t Duplication in Test Code --
|t Assertion Roulette and Eager Test --
|t Fragile Test --
|t Obscure Test --
|t Problems with Global State --
|t Indirect Testing --
|t Obscure Test Names --
|t Lying Test --
|t Slow Test --
|t Conditional Logic in Tests --
|t Self-validating Tests --
|t Web-surfing Tests --
|t Mock Overkill --
|t Skip Epidemic --
|t Conclusion --
|g ch. 5
|t Quality Assurance At Digg Inc --
|t Problems We Are Facing --
|t Legacy Code Base --
|t How Do We Solve These Problems? --
|t Size Does Matter --
|t Team Size --
|t Project Size --
|t Code Size --
|t Unit Testing and You --
|t Choosing a Testing Framework --
|t Working with an Expert --
|t One Week in a Room --
|t Training Our Team --
|t Writing Testable Code --
|t Avoid Static Methods --
|t Dependency Injection --
|t Mock Objects --
|t Overview --
|t Database --
|t Loosely Coupled Dependencies --
|t Subject/Observer for Testing Class Internals.
|
505 |
0 |
0 |
|t Memcached --
|t Mocking a Service-Oriented Architecture --
|t Model --
|t Service Query --
|t Service Endpoint --
|t The Base Classes --
|t Digg's Quality Assurance Process --
|t Testing --
|t Planning the Testing Effort --
|t Tasks --
|t Automation --
|t Benefits --
|t Testing Early --
|t Testing Often --
|t Challenges --
|t Conclusion --
|g ch. 6
|t Testing Service-Oriented APIS --
|t The Problems --
|t Solutions --
|t API Credentials --
|t API Limits --
|t Offline Testing of Service Protocols --
|t Offline Testing of Concrete Services --
|t Conclusion --
|g ch. 7
|t Testing A Webdav Server --
|t About the eZ WebDAV Component --
|t WebDAV --
|t Architecture --
|t Development Challenges --
|t Requirements Analysis --
|t TDD after RFC --
|t Testing a Server --
|t Automated Acceptance Tests with PHPUnit --
|t Capturing Test Trails --
|t Test Recipe --
|t Integration into PHPUnit --
|t A Custom Test Case --
|t The Acceptance Test Suite --
|t Acceptance Tests by Example --
|t Conclusion --
|g ch. 8
|t Testing Symfony And Symfony Projects --
|t Testing a Framework --
|t The symfony Release Management Process --
|t Long-term Support --
|t Code Coverage --
|t Tests versus Real Code.
|
505 |
0 |
0 |
|t Running the Test Suite --
|t Main Lessons Learned --
|t Never Use the Singleton Design Pattern in PHP --
|t Decouple Your Code with Dependency Injection --
|t Lower the Number of Dependencies between Objects with an Event Dispatcher --
|t Testing Web Applications --
|t Lowering the Barrier of Entry of Testing --
|t Unit Tests --
|t Easy to Install --
|t Easy to Learn --
|t Fun to Use --
|t Functional Tests --
|t The Browser Simulator --
|t The Fixtures --
|t The CSS3 Selectors --
|t Testing Forms --
|t Debugging --
|t Conclusion --
|g ch. 9
|t Testing The EZCgraph Component --
|t Development Philosophy --
|t Graph Component --
|t Architecture --
|t Test Requirements --
|t Driver Mocking --
|t Mock the Driver --
|t Multiple Assertions --
|t Structs --
|t Expectation Generation --
|t Conclusion --
|t Testing Binary Data --
|t The Drivers --
|t Expectation Generation --
|t SVG --
|t XML Comparison --
|t Floating-point Problems --
|t Bitmap Creation --
|t Bitmap Comparison --
|t GD Version Differences --
|t Flash --
|t The Assertion --
|t Conclusion --
|g ch. 10
|t Testing Database Interaction --
|t Introduction --
|t Reasons Not to Write Database Tests.
|
505 |
0 |
0 |
|t Why We Should Write Database Tests --
|t What We Should Test --
|t Writing Tests: Mocking Database Connections --
|t Writing Tests: PHPUnit Database Extension --
|t The Database Test Case Class --
|t Establishing the Test Database Connection --
|t Creating Data Sets --
|t XML Data Sets --
|t Flat XML Data Sets --
|t CSV Data Sets --
|t YAML Data Sets --
|t Database Data Sets --
|t Data Set Decorators --
|t Generating Data Sets --
|t Data Operations --
|t Creating Tests --
|t Testing the Loading of Data --
|t Testing the Modification of Data --
|t Using the Database Tester --
|t Applying Test-Driven Design to Database Testing --
|t Using Database Tests for Regression Testing --
|t Testing Problems with Data --
|t Testing Problems Revealed by Data --
|t Conclusion --
|g ch. 11
|t Quality Assurance At studiVZ --
|t Introduction --
|t About studiVZ --
|t Acceptance Tests --
|t Acceptance Tests in Agile Environments --
|t Selenium --
|t The Selenium Extension of PHPUnit --
|t The Technical Setup of studiVZ --
|t Development Environment --
|t Test Environment --
|t Best Practices --
|t Sins of Our Youth --
|t Monolithic Tests --
|t Static Users.
|
505 |
0 |
0 |
|t Strategy Change --
|t Atomic Tests with Dynamic Test Data --
|t Robust Selenium Tests --
|t Test Scope Must Be Clear --
|t Common Functionality or Browser Compatibility as Well? --
|t Fix Tests Right Away! --
|t Stabilize Locators, and Use IDs --
|t Speed, the Sore Subject --
|t Recipes for Last-Minute Features --
|t Tests Are Software Too --
|t Capture and Replay versus Programming Tests --
|t The Team: A Good Mix --
|t We Need a DSL --
|t Internal DSL --
|t Testing_SeleniumDSL 1.0 --
|t Problem: Context Sensitivity --
|t Testing_SeleniumDSL 2.0, A Draft --
|t State and Outlook on Version 2.0 --
|t Conclusion --
|g ch. 12
|t Continuous Integration --
|t Introduction --
|t Continuous Integration --
|t Configuration --
|t Build Management and Automated Tests --
|t Version Management --
|t Continuous Integration --
|t Static Analysis --
|t Code Clones --
|t Refactoring --
|t Software Metrics --
|t Classic Metrics --
|t Object-Oriented Metrics --
|t RATS --
|t Installation --
|t Configuration --
|t Static Tests --
|t Programming Conventions --
|t Coding Guidelines --
|t Gradual Introduction into Legacy Projects --
|t Coding Standards in the Daily Work.
|
505 |
0 |
0 |
|t Syntax Analysis --
|t Dynamic Tests --
|t Reporting --
|t Notification in the Case of Errors --
|t Statistics --
|t PHP CodeBrowser --
|t Deliverables --
|t Operations --
|t Advanced Topics --
|t Continuous Deployment --
|t Using a Reverse Proxy --
|t Continuous Integration and Agile Paradigms --
|t Conclusion --
|g ch. 13
|t Swoodoo: A True Agile Story --
|t Introduction --
|t Evolution: Only the Strong Survive --
|t How We Reached the eXtreme Side --
|t And While We Are Working --
|t The Art of Evolution --
|t Lack of Experience --
|t The Java-developer-coding-in-PHP Phenomenon --
|t The Nobody-but-me-understands-my-code Developer --
|t Conclusion --
|g ch. 14
|t Usability --
|t Anything Goes, But What Is the Price? --
|t Design Aspects --
|t Accessibility --
|t Readability --
|t Labels for Form Elements --
|t Navigating by Keyboard --
|t Effective Contrast --
|t Logo Links to Home Page --
|t Alternative Texts for Images --
|t Background Image in Background Color --
|t Usable Print Version --
|t Visible Links --
|t Good Bookmarks --
|t No Frames --
|t Scalable Fonts --
|t Technical Aspects --
|t Performance --
|t Semantic Code --
|t Fewer Requests --
|t CSS Sprites.
|
505 |
0 |
0 |
|t JavaScript on Bottom, CSS on Top --
|t Link CSS Instead of Importing --
|t JavaScript --
|t User Guidance --
|t The "Fold" Myth --
|t Feedback on Interaction --
|t Navigation --
|t Pop-ups and Other Annoyances --
|t Habits and Expectations --
|t Fault Tolerance and Feedback --
|t Testing Usability --
|t Conclusion --
|g ch. 15
|t Performance Testing --
|t Introduction --
|t Tools --
|t Environmental Considerations --
|t Load Testing --
|t Apache Bench --
|t Pylot --
|t Other Load Testing Tools --
|t Profiling --
|t Callgrind --
|t KCachegrind --
|t APD --
|t Xdebug --
|t XHProf --
|t OProfile --
|t System Metrics --
|t strace --
|t Sysstat --
|t Custom Instrumentation --
|t Common Pitfalls --
|t Development versus Production Environments --
|t CPU Time --
|t Micro-Optimizations --
|t PHP as the Glue --
|t Priority of Optimization --
|t Conclusion --
|g ch. 16
|t Security --
|t What Is Security? --
|t Secure by Design --
|t Operations --
|t Physical Access.
|
505 |
0 |
0 |
|t Software Development --
|t No Security by Obscurity --
|t Separation of Concerns --
|t A Matter of Rights --
|t Error Handling --
|t Basic Settings --
|t What Does Security Cost? --
|t The Most Common Problems --
|g A10.
|t Unvalidated Redirects and Forwards --
|g A9.
|t Insufficient Transport Layer Protection --
|g A8.
|t Failure to Restrict URL Access --
|g A7.
|t Insecure Cryptographic Storage --
|g A6.
|t Security Misconfiguration --
|g A5.
|t Cross Site Request Forgery (CSRF/XSRF) --
|g A4.
|t Insecure Direct Object References --
|g A3.
|t Broken Authentication and Session Management --
|g A2.
|t Cross-Site Scripting (XSS) --
|g A1.
|t Injection --
|t Conclusion --
|g ch. 17
|t Conclusion.
|
520 |
|
|
|a Presents information and a variety of case studies focusing on creating sustainable applications and frameworks using PHP.
|
546 |
|
|
|a English.
|
590 |
|
|
|a O'Reilly
|b O'Reilly Online Learning: Academic/Public Library Edition
|
650 |
|
0 |
|a PHP (Computer program language)
|
650 |
|
0 |
|a Application software
|x Development.
|
650 |
|
6 |
|a PHP (Langage de programmation)
|
650 |
|
6 |
|a Logiciels d'application
|x Développement.
|
650 |
|
7 |
|a COMPUTERS
|x Software Development & Engineering
|x General.
|2 bisacsh
|
650 |
|
7 |
|a COMPUTERS
|x Software Development & Engineering
|x Systems Analysis & Design.
|2 bisacsh
|
650 |
|
7 |
|a Application software
|x Development.
|2 fast
|0 (OCoLC)fst00811707
|
650 |
|
7 |
|a PHP (Computer program language)
|2 fast
|0 (OCoLC)fst01049847
|
700 |
1 |
|
|a Priebsch, Stefan.
|4 aut
|
776 |
0 |
8 |
|i Print version:
|a Bergmann, Sebastian, 1978-
|t Real-world solutions for developing high-quality PHP frameworks and applications.
|d Indianapolis, IN : Wiley Pub., ©2011
|z 9780470872499
|z 0470872497
|w (OCoLC)635494699
|
830 |
|
0 |
|a Wrox guides.
|
856 |
4 |
0 |
|u https://learning.oreilly.com/library/view/~/9780470872499/?ar
|z Texto completo (Requiere registro previo con correo institucional)
|
938 |
|
|
|a Books 24x7
|b B247
|n bks00041177
|
938 |
|
|
|a Coutts Information Services
|b COUT
|n 20576022
|c 29.99 GBP
|
938 |
|
|
|a ProQuest Ebook Central
|b EBLB
|n EBL706824
|
938 |
|
|
|a ebrary
|b EBRY
|n ebr10513956
|
938 |
|
|
|a EBSCOhost
|b EBSC
|n 391500
|
938 |
|
|
|a YBP Library Services
|b YANK
|n 3650559
|
938 |
|
|
|a YBP Library Services
|b YANK
|n 12670248
|
994 |
|
|
|a 92
|b IZTAP
|