Search Results

Search found 88858 results on 3555 pages for 'code challenge'.

Page 574/3555 | < Previous Page | 570 571 572 573 574 575 576 577 578 579 580 581  | Next Page >

  • How to refactor a method which breaks "The law of Demeter" principle?

    - by dreza
    I often find myself breaking this principle (not intentially, just through bad design). However recently I've seen a bit of code that I'm not sure of the best approach. I have a number of classes. For simplicity I've taken out the bulk of the classes methods etc public class Paddock { public SoilType Soil { get; private set; } // a whole bunch of other properties around paddock information } public class SoilType { public SoilDrainageType Drainage { get; private set; } // a whole bunch of other properties around soil types } public class SoilDrainageType { // a whole bunch of public properties that expose soil drainage values public double GetProportionOfDrainage(SoilType soil, double blockRatio) { // This method does a number of calculations using public properties // exposed off SoilType as well as the blockRatio value in some conditions } } In the code I have seen in a number of places calls like so paddock.Soil.Drainage.GetProportionOfDrainage(paddock.Soil, paddock.GetBlockRatio()); or within the block object itself in places it's Soil.Drainage.GetProportionOfDrainage(this.Soil, this.GetBlockRatio()); Upon reading this seems to break "The Law of Demeter" in that I'm chaining together these properties to access the method I want. So my thought in order to adjust this was to create public methods on SoilType and Paddock that contains wrappers i.e. on paddock it would be public class Paddock { public double GetProportionOfDrainage() { return Soil.GetProportionOfDrainage(this.GetBlockRatio()); } } on the SoilType it would be public class SoilType { public double GetProportionOfDrainage(double blockRatio) { return Drainage.GetProportionOfDrainage(this, blockRatio); } } so now calls where it used would be simply // used outside of paddock class where we can access instances of Paddock paddock.GetProportionofDrainage() or this.GetProportionOfDrainage(); // if used within Paddock class This seemed like a nice alternative. However now I have a concern over how would I enforce this usage and stop anyone else from writing code such as paddock.Soil.Drainage.GetProportionOfDrainage(paddock.Soil, paddock.GetBlockRatio()); rather than just paddock.GetProportionOfDrainage(); I need the properties to remain public at this stage as they are too ingrained in usage throughout the code block. However I don't really want a mixture of accessing the method on DrainageType directly as that seems to defeat the purpose altogether. What would be the appropiate design approach in this situation? I can provide more information as required to better help in answers. Is my thoughts on refactoring this even appropiate or should is it best to leave it as is and use the property chaining to access the method as and when required?

    Read the article

  • Google I/O 2012 - The Web Platform's Cutting Edge

    Google I/O 2012 - The Web Platform's Cutting Edge Dimitri Glazkov, Alex Komoroske From embeds to widgets to managing complex applications, you constantly face the need for better componentization as a web developer. Many-a-lines of JavaScript have been written to alleviate this problem -- poorly. But help is on the way. The web platform is gaining a powerful new set of capabilities designed to better help you build robust, reusable, and packageable components. We'll cover what they do, their status, and how you can start playing with these powerful emerging technologies today. Most importantly, we'll show you how to get involved and help influence their direction as they mature. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 2795 48 ratings Time: 47:45 More in Science & Technology

    Read the article

  • Pull Request Conversations, Inline Diff Enhancements

    [Do you tweet? Follow us on Twitter @matthawley and @adacole_msft] We deployed a new version of the CodePlex website today. Pull Request Conversations Previously, the only way for project members and users who submitted pull requests to converse was via e-mail. This complicated the review process and made conversations isolated and difficult to track. For this release, we’ve added functionality that enables you to have those same conversations within the pull request page. When you view a pull request, you’ll now see “Comments” and “Changes” tabs, with current comments displayed. Inline Diff Enhancements We tweaked the inline diff experience to make it easier to traverse diff blocks. When you open up the inline diff experience, you’ll now see up and down arrows. To move between the diff blocks, you can use those arrows or utilize the available keyboard shortcuts. Lastly, we have also brought the inline diff experience to the source control changes page for project and fork changesets. You can see both enhancements live by viewing the associated pull request or changeset changes on WikiPlex. The CodePlex team values your feedback. We are frequently monitoring Twitter, our Discussions, and Issue Tracker. If you have not visited the Issue Tracker recently, please take a few minutes to suggest or vote on a feature you would like to see implemented.

    Read the article

  • Debunking Dart Myths For Web Developers

    Debunking Dart Myths For Web Developers Addy Osmani interviews Seth Ladd to learn more about Dart. Join this episode to discover how Dart relates to JavaScript, who the intended audience for Dart is, and what Dart's motivations are. If you're curious what Dart is all about, and if it wants to replace JavaScript, this is the episode for you! From: GoogleDevelopers Views: 0 1 ratings Time: 00:00 More in Science & Technology

    Read the article

  • Multitasking the Android Way

    [This post is by Dianne Hackborn, a Software Engineer who sits very near the exact center of everything Android. — Tim Bray] Android is fairly unique in the ways it allows...

    Read the article

  • How to work with Silverlight BusyIndicator?

    Silverlight BusyIndicator is not a new thing in Silverlight. It was first added in Silverlight 3 Toolkit in November 2009 release (if I am not wrong). In this post I will describe about this for those who wants to know about it. So, What is this Busy Indicator? Busy indicator is a tool which you ca

    Read the article

  • Google I/O 2012 - How we Make JavaScript Widgets Scream

    Google I/O 2012 - How we Make JavaScript Widgets Scream Malte Ubl, John Hjelmstad When loading websites every millisecond counts. Social widgets should enhance a website experience and they should definitely not slow it down. We'll walk through the unique challenges of loading social widgets such as the +1 button and how we made sure that they load as fast as possible -- yes, there will be war stories! While we'll focus on widget performance, many of the techniques we used have wider applicability and we'll show how they can make your website faster, too. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 734 3 ratings Time: 51:44 More in Science & Technology

    Read the article

  • Google Chrome Extensions: Launch Event (part 1)

    Google Chrome Extensions: Launch Event (part 1) Video Footage from the Google Chrome Extensions launch event on 12/09/09. In this part, Brian Rakowski, product management director, provides an update on Google Chrome and explains why extensions are important for the Google Chrome team. From: GoogleDevelopers Views: 5175 17 ratings Time: 04:39 More in Science & Technology

    Read the article

< Previous Page | 570 571 572 573 574 575 576 577 578 579 580 581  | Next Page >