Search Results

Search found 93388 results on 3736 pages for 'code structure'.

Page 608/3736 | < Previous Page | 604 605 606 607 608 609 610 611 612 613 614 615  | Next Page >

  • Updating an Entity through a Service

    - by GeorgeK
    I'm separating my software into three main layers (maybe tiers would be a better term): Presentation ('Views') Business logic ('Services' and 'Repositories') Data access ('Entities' (e.g. ActiveRecords)) What do I have now? In Presentation, I use read-only access to Entities, returned from Repositories or Services, to display data. $banks = $banksRegistryService->getBanksRepository()->getBanksByCity( $city ); $banksViewModel = new PaginatedList( $banks ); // some way to display banks; // example, not real code I find this approach quite efficient in terms of performance and code maintanability and still safe as long as all write operations (create, update, delete) are preformed through a Service: namespace Service\BankRegistry; use Service\AbstractDatabaseService; use Service\IBankRegistryService; use Model\BankRegistry\Bank; class Service extends AbstractDatabaseService implements IBankRegistryService { /** * Registers a new Bank * * @param string $name Bank's name * @param string $bik Bank's Identification Code * @param string $correspondent_account Bank's correspondent account * * @return Bank */ public function registerBank( $name, $bik, $correspondent_account ) { $bank = new Bank(); $bank -> setName( $name ) -> setBik( $bik ) -> setCorrespondentAccount( $correspondent_account ); if( null === $this->getBanksRepository()->getDefaultBank() ) $this->setDefaultBank( $bank ); $this->getEntityManager()->persist( $bank ); return $bank; } /** * Makes the $bank system's default bank * * @param Bank $bank * @return IBankRegistryService */ public function setDefaultBank( Bank $bank ) { $default_bank = $this->getBanksRepository()->getDefaultBank(); if( null !== $default_bank ) $default_bank->setDefault( false ); $bank->setDefault( true ); return $this; } } Where am I stuck? I'm struggling about how to update certain fields in Bank Entity. Bad solution #1: Making a series of setters in Service for each setter in Bank; - seems to be quite reduntant, increases Service interface complexity and proportionally decreases it's simplicity - something to avoid if you care about code maitainability. I try to follow KISS and DRY principles. Bad solution #2: Modifying Bank directly through it's native setters; - really bad. If you'll ever need to move modification into the Service, it will be pain. Business logic should remain in Business logic layer. Plus, there are plans on logging all of the actions and maybe even involve user permissions (perhaps, through decorators) in future, so all modifications should be made only through the Service. Possible good solution: Creating an updateBank( Bank $bank, $array_of_fields_to_update) method; - makes the interface as simple as possible, but there is a problem: one should not try to manually set isDefault flag on a Bank, this operation should be performed through setDefaultBank method. It gets even worse when you have relations that you don't want to be directly modified. Of course, you can just limit the fields that can be modified by this method, but how do you tell method's user what they can and cannot modify? Exceptions?

    Read the article

  • My version of UnhandledExceptionModule

    - by Michael Freidgeim
    I've created my own version of UnhandledExceptionModule independantly of codePlex project in 2007, I've used code from http://support.microsoft.com/kb/911816 with considerations from http://www.eggheadcafe.com/articles/20060305.asp   and done some refactoring. It also allows to use AppSettings["EventLogSourceName"]   The zip file also includes TestUnhandledExceptionWAP test project, that I used to investigate issue legacyUnhandledExceptionPolicy enabled="true" doesn't prevent ASP.NET application restarting   I've upload the code as patch here

    Read the article

  • Chrome Apps Office Hours: Controlling an AR Parrot Drone

    Chrome Apps Office Hours: Controlling an AR Parrot Drone Ask and vote for questions: goo.gl Join us next week as we show you how we used a Chrome App to control an AR Parrot Drone! This is just one of the many cool things that you can do with Chrome Apps. Using the networking APIs, we were able to pilot the AR Parrot Drone, and get data back from its on-board sensors. We'll take the app apart, show you how were were able to get everything to work, and maybe even take it for a live spin on air! From: GoogleDevelopers Views: 0 0 ratings Time: 00:00 More in Science & Technology

    Read the article

  • Google I/O 2012 - Building Android Applications that Use Web APIs

    Google I/O 2012 - Building Android Applications that Use Web APIs Yaniv Inbar Google offers a large and growing set of back-end services, from AdSense to Tasks to Calendar to Google+, that can enrich your app, and increasingly they have a uniform set of APIs. This session discusses how to use them efficiently and securely, including authenticating safely and with good user experience, and describes Android-specific app-level optimizations. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 563 12 ratings Time: 55:14 More in Science & Technology

    Read the article

  • Google+ Platform Office Hours for February 1st 2012

    Google+ Platform Office Hours for February 1st 2012 Jenny Murphy and Jonathan Beri represented Google. Fraser Cain, Abraham Williams and Allen Firstenberg joined us from the developer community. This week we discussed the new configuration options for the Google+ Badge. You can read more about these new features on the platform blog: googleplusplatform.blogspot.com Please join the discussion on our support forum: groups.google.com Learn more about our office hours on Google Developers: developers.google.com From: GoogleDevelopers Views: 4150 55 ratings Time: 47:51 More in Science & Technology

    Read the article

  • Google I/O 2012 - Measuring the End-to-End Value of Your App

    Google I/O 2012 - Measuring the End-to-End Value of Your App Neil Rhodes, Nick Mihailovski, Mike Kwong We've rethought mobile app analytics from the ground up. If you are a mobile app developer, come see what's new from the land of Google Analytics; Understand how to measure the end-to-end value of your app, and improve its performance to drive usage and retention. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 69 4 ratings Time: 01:04:12 More in Science & Technology

    Read the article

  • Google I/O 2012 - Dart - A Modern Web Language

    Google I/O 2012 - Dart - A Modern Web Language Lars Bak, Kasper Lund The two creators of Dart will discuss the rationale behind Dart's design and its impact on web scalability and performance. They'll also present how Dart helps developers innovate by increasing their productivity without breaking backwards compatibility. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 2066 36 ratings Time: 01:03:40 More in Science & Technology

    Read the article

  • Dartisans Ep. 16: Dart and Web Components Reloaded

    Dartisans Ep. 16: Dart and Web Components Reloaded In this episode of Dartisans, Dimitri Glazkov (one of the godfathers of Web Components) will give a presentation on Web Components. Also, John Messerly and Siggi Cherem (who helped build the dart-lang/dart-web-components library) will give a presentation on using Web Components in Dart. A lot of things have changed since our last episode focused on Web Components, and this is shaping up to be an awesome edition of Dartisans! From: GoogleDevelopers Views: 0 0 ratings Time: 01:00:00 More in Science & Technology

    Read the article

  • How Orchard works

    - by Latest Microsoft Blogs
    I just finished writing a long documentation topic on the Orchard project wiki that aims at being a good starting point for developers who want to understand the architecture, structure and general philosophy behind the Orchard CMS. It is not required Read More......(read more)

    Read the article

  • Senior Developers vs. Junior

    - by huwyss
    I like the following quote which I found on codinghorror:[As Steve points out this is one key difference between junior and senior developers:] In the old days, seeing too much code at once quite frankly exceeded my complexity threshold, and when I had to work with it I'd typically try to rewrite it or at least comment it heavily. Today, however, I just slog through it without complaining (much). When I have a specific goal in mind and a complicated piece of code to write, I spend my time making it happen rather than telling myself stories about it [in comments].

    Read the article

  • Google I/O 2012 - Deep Dive into the Next Version of the Google Drive API

    Google I/O 2012 - Deep Dive into the Next Version of the Google Drive API Ali Afshar, Ivan Lee This session discusses a number of best practices with the new Google Drive API. We'll cover how to properly sync files, how to manage sharing, and how to make your applications faster and more efficient than ever before. We'll go through an entire working application that exposes best practices. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 17 0 ratings Time: 45:50 More in Science & Technology

    Read the article

  • Twazzup and App Engine

    Twazzup and App Engine An interview with the developers behind twazzup.com on how App Engine helps them run their application. From: GoogleDevelopers Views: 1298 7 ratings Time: 08:37 More in Science & Technology

    Read the article

  • Is it possible to set Transmission to show list of files as collapsed by default?

    - by Rasmus
    When downloading a torrent with a large folder hierarchy, I often find myself losing overview of the content of the torrent as Transmission shows the entire folder structure expanded under Properties > Files. Most annoyingly, if one collapses the tree and closes the dialog, the tree will be expanded again if one re-access it. Is it somehow possible to set Transmission to show torrent content as collapsed by default?

    Read the article

  • GDD-BR 2010 [0H] OpenID-based single sign-on and OAuth data access

    GDD-BR 2010 [0H] OpenID-based single sign-on and OAuth data access Speaker: Ryan Boyd Track: Chrome and HTML5 Time slot: H[17:20 - 18:05] Room: 0 A discussion of all the auth tangles you've encountered so far -- OpenID, SSO, 2-Legged OAuth, 3-Legged OAuth, and Hybrid OAuth. We'll show you when and where to use them, and explain how they all integrate with Google APIs and other developer products. From: GoogleDevelopers Views: 11 0 ratings Time: 41:24 More in Science & Technology

    Read the article

  • ImageViewer UserControl

    The article is about a UserControl I wrote. Opposed to PictureBoxes and other methods to displaying images on your forms this one provides a totally diffrent approach.

    Read the article

  • Build & Install Ruby Gems with Rake

    - by kerry
    Are you using rake to build your gems?  Have you ever wished there were an install task to install it to your machine?  I, for one, have written something like this a few times: 1: desc 'Install the gem' 2: task :install do 3: exec 'gem install pkg/goodies-0.1.gem' 4: end 5:  That is pretty straightforward.  However, this will not work under JRuby on Mac where the command should be ‘jgem’.  So we can enhance it to detect the platform, and host OS: 1: desc 'Install the gem' 2: task :install do 3: executable = RUBY_PLATFORM[/java/] && Config::CONFIG[/darwin/] ? 'jgem' : 'gem' 4: exec "#{executable} install pkg/goodies-0.1.gem" 5: end This is a little better.  I am still not comfortable with the sloppiness of building a shell command and executing it though.  It is possible to do it with strictly Ruby.  I am also going namespace it to integrate better with the GemPackageTask.  Now it will be accessed via ‘rake gem:install’ 1: desc 'Install the gem' 2: namespace 'gem' do 3: task :install do 4: Gem::Installer.new('pkg/goodies-0.1.gem').install 5: end 6: end   I have included this in the goodies gem 0.2, so go ahead and install it!  ‘gem install goodies’

    Read the article

  • Growing Up with Samba

    Next month Samba eXPerience 2010 , the ninth international Samba conference for users and developers, will be held in G?ttingen, Germany from May 3rd - 7th. Jeremy Allison...

    Read the article

< Previous Page | 604 605 606 607 608 609 610 611 612 613 614 615  | Next Page >