Search Results

Search found 98173 results on 3927 pages for 'maintaining old code'.

Page 649/3927 | < Previous Page | 645 646 647 648 649 650 651 652 653 654 655 656  | 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

  • I need help with specific types of movement.

    - by IronGiraffe
    I'm adding movable crates to my game and I need some help with my movement code. The way I've set up my movement code the crate's X and Y are moved according to a vector2 unless it hits a wall. Here's the movement code: if (frameCount % (delay / 2) == 0) { for (int i = 0; i < Math.Abs(cSpeed.X); i++) { if (!Level.PlayerHit(new Rectangle(crateBounds.X + (Math.Sign(cSpeed.X) * 32), crateBounds.Y, crateBounds.Width, crateBounds.Height))) { if (!Level.CollideTiles(crateBounds.X + (Math.Sign(cSpeed.X) * 32), crateBounds.Y, crateBounds.Width, crateBounds.Height)) { if (cSpeed.X != 0) { crateBounds.X += Math.Sign(cSpeed.X); } else { Equalize(2); } } else { cSpeed.X = 0f; } } else { if (!Level.CollideTiles(crateBounds.X - (Math.Sign(cSpeed.X) * 32), crateBounds.Y, crateBounds.Width, crateBounds.Height)) { if (cSpeed.X != 0) { crateBounds.X -= Math.Sign(cSpeed.X); } else { Equalize(2); } } else { cSpeed.X = 0f; } } } for (int i = 0; i < Math.Abs(cSpeed.Y); i++) { if (!Level.PlayerHit(new Rectangle(crateBounds.X, crateBounds.Y + Math.Sign(cSpeed.Y), crateBounds.Width, crateBounds.Height))) { if (!Level.CollideTiles(crateBounds.X, crateBounds.Y + Math.Sign(cSpeed.Y), crateBounds.Width, crateBounds.Height)) { crateBounds.Y += Math.Sign(cSpeed.Y); } else { cSpeed.Y = 0f; } } else { if (!Level.CollideTiles(crateBounds.X, crateBounds.Y - Math.Sign(cSpeed.Y), crateBounds.Width, crateBounds.Height)) { crateBounds.Y -= Math.Sign(cSpeed.Y); } else { cSpeed.Y = 0f; } } } } The frameCount and delay variables just slow down the movement somewhat. Anyway, I've added a tool to my game that acts as a gravity well (drawing objects into it's center; the closer they get to the center the faster they go) and what I'm trying to do is make it so that the crate will bounce off the player (and vice versa) when they collide. Thus far, my code only keeps the crate and player from getting stuck inside each other (the player can still get stuck under the crate, but I'll fix that later.) So what I'd like to know is how I can best make the crate bounce off the player. The other movement problem I'm having is related to another tool which allows the player to pick up crates and move around with them. The problem is that the crate's movement while being carried isn't tied to the movement script (it moves the crate itself, instead of adding to speed), which makes the crate go through walls and such. I know what I have to do: make the crate's speed match the player's speed while the player is holding it, but I need the crate to snap to a certain position (just in front of the player) when the player grabs it and it needs to switch to another position (just in front of the player on the other side) when they player faces the other direction while holding it. What would be the best way to make it switch places while keeping all the movement tied to the speed vector?

    Read the article

  • Fusion Tables API enfocando a los desarrolladores

    Fusion Tables API enfocando a los desarrolladores En este programa presentaremos una visión general de las novedades tecnológicas desde el equipo de relaciones para desarrolladores de la región de sur de Latinoamérica. Seguiremos presentando nuestro enfoque de desarrollo, ingeniería y las mejores prácticas para implementar tecnología Google favoreciendo la evolución de soluciones tecnológicas. Luego nos introduciremos en un escenario técnico en donde analizaremos la solución Fusion Tables API para desarrolladores(seguimos trabajando sobre los entornos de persistencia en la nube). Finalmente estaremos conversando con la comunidad de desarrollo, resolviendo un desafío técnico y premiando todo el talento regional From: GoogleDevelopers Views: 0 1 ratings Time: 00:00 More in Education

    Read the article

  • SQL SERVER SELECT TOP Shortcut in SQL Server Management Studio (SSMS)

    This is tool is pretty old, yet always comes as a handy tip. I had a great trip at TechEd in India. And, during one of my presentations, I was asked if there are any shortcuts to SELECT only TOP 100 records from SSMS.I immediately told him that if he explores the table in SSMS, [...]...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • Google Chrome Extensions: Launch Event (part 5)

    Google Chrome Extensions: Launch Event (part 5) Video Footage from the Google Chrome Extensions launch event on 12/09/09. Xmarks, ebay and Google Translate present their experience developing an extension for Google Chrome. From: GoogleDevelopers Views: 3039 18 ratings Time: 10:30 More in Science & Technology

    Read the article

  • Working with legacy data

    - by John Paul Cook
    We encounter legacy data as a part of life. Colleges and universities have transcript records dating back decades or even centuries. Real estate property records in the United States go as far back as Spanish and British land grants in the 1500s. Very old records are completely paper based and may be completely manually prepared, perhaps typed on a typewriter or written in longhand with a quill pen. How long should transcripts be retained? Nola Ochs graduated from college at age 95 (can you imagine...(read more)

    Read the article

  • Google I/O 2012 - Fireside Chat with the Hangouts Team

    Google I/O 2012 - Fireside Chat with the Hangouts Team Come join a conversation with the Google+ Hangouts team. Hear the thinking behind Google's real time strategy and learn how businesses, broadcasters, developers, and families are all using the product. Ever wondered how a hangout on air works? Come to this session to get all your questions answered and learn what's in store for hangouts in the future. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 58 0 ratings Time: 01:00:01 More in Science & Technology

    Read the article

  • Google I/O 2012 - Bring Your App to the Big Screen

    Google I/O 2012 - Bring Your App to the Big Screen Michael Sundermeyer, Ossama Alami Google TV expands the reach of the Android and the web to television, but designing applications for the TV is fundamentally different than building apps for mobile, tablet or PCs. In this session we'll we share the core points of our user research and give you tips on how to connect with your users by designing beautiful and functional Android and web applications for the biggest screen in the house. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 617 17 ratings Time: 58:07 More in Science & Technology

    Read the article

  • Displaying the same page, no matter what URI

    - by jgauffin
    We have moved a webapplication and would like to display a message in the old IIS. Let's say that the application was in http://oldserver/appname/. How do I make sure that our moved.html is displayed to the user no matter which uri the user browsed in to (in that virtual folder)? http://oldserver/appname/some/path.aspx --- should display http://oldserver/appname/moved.html http://oldserver/appname -- should display http://oldserver/appname/moved.html

    Read the article

  • Synonyms made easy

    The Custom Search team is always working to provide more relevant results, and improving user queries is a big part of that goal. We've shown you how to...

    Read the article

  • GDD-BR 2010 [2H] Earn Money from your Mobile App with AdMob

    GDD-BR 2010 [2H] Earn Money from your Mobile App with AdMob Speakers: Peter Fernandez Track: Google APIs Time slot: H [17:20 - 18:05] Room: 2 Level: 101 We'll show you different strategies for monetizing your app with AdMob ads and help you figure out how much you can earn. We'll also share enlightening data on the growth of the Android, iPhone and iPad platforms. From: GoogleDevelopers Views: 0 0 ratings Time: 20:43 More in Science & Technology

    Read the article

  • Google I/O 2012 - High Performance HTML5

    Google I/O 2012 - High Performance HTML5 For years we built web apps that far outpaced the capabilities of the browsers they ran in. Just as the browsers were catching up HTML5 came on the scene - video and audio, canvas, SVG, app cache, localStorage, @font-face, and more. Now the browsers are racing to stay ahead of the wave that's building as developers adopt these new capabilities. Is your HTML5 app going to ride the wave or be dashed on the rocks leaving users stranded? Learn which HTML5 features to seek out and which to avoid when it comes to building fast HTML5 web apps. This session will be live captioned. From: GoogleDevelopers Views: 91 1 ratings Time: 01:02:07 More in Science & Technology

    Read the article

< Previous Page | 645 646 647 648 649 650 651 652 653 654 655 656  | Next Page >