When is a method to long?
I know this is mainly up to the programmer to decide but what limit would you say the number of lines in a method should be?
I ask due to the response i got from an earlier piece of code i posted and since have been working to shorten one of my methods.
Should a method only be doing one thing or can it be doing many?
eg. Should a getDetails() be getting the details or should it be using inner methods that getName() and getSurname() as an example?
I am confused as I dont know whats more important more methods == more code
Longer methods are also not nice.
Regards Yucca
Yucca wrote:
I know this is mainly up to the programmer to decide but what limit would you say the number of lines in a method should be?it depends on what the requirements are
usually if a method is more than20-30 lines or whatever there's probably something that can be refactored
that said, there are times when it's necessary to write more lines than that (without the ability to refactor)
really it has nothing to do with lines, it has to do with how organized/logical the code blocks are
I ask due to the response i got from an earlier piece of code i posted and since have been working to shorten one of my methods.don't work to shorten your methods just for the sake of shortening them - that serves no purpose
but you should always be refactoring
Should a method only be doing one thing or can it be doing many?you want each method to do one thing, but that one thing might be a single transaction that needs to call 5 other methods to achieve that one thing
so group it logically - but yeah, one method per unit of work is the right approach
eg. Should a getDetails() be getting the details or should it be using inner methods that getName() and getSurname() as an example?not sure what you mean
I am confused as I dont know whats more important more methods == more codeit's technically more code but when you read it (such as when you maintain it) it's actually less code to read through
Longer methods are also not nice.refactor, refactor, refactor
Edited by: SoulTech2012 on May 15, 2008 2:37 PM
Similar Messages
-
. Every time i click on it says to reopen or dont reopen. i press reopen i gives me this long screen and it says reopen or press okay. when i press ok it closes the box and doesnt open. when i press reopen the long screen and stays like that.
If Safari crashes on launch and you don't have another web browser, you should be able to launch Safari by starting up in safe mode.
You may have installed the "Genieo" or "InstallMac" ad-injection malware. Follow the instructions on this Apple Support page to remove it.
Back up all data before making any changes.
Besides the files listed in the linked support article, you may also need to remove this file in the same way:
~/Library/LaunchAgents/com.genieo.completer.ltvbit.plist
If there are other items with a name that includes "Genieo" or "genieo" alongside any of those you find, remove them as well.
One of the steps in the article is to remove malicious Safari extensions. Do the equivalent in the Chrome and Firefox browsers, if you use either of those.
After removing the malware, remember to reset your home page in all the web browsers affected, if it was changed.
If you don't find any of the files or extensions listed, or if removing them doesn't stop the ad injection, then you may have one of the other kinds of adware covered by the support article. Follow the rest of the instructions in the article.
Make sure you don't repeat the mistake that led you to install the malware. Chances are you got it from an Internet cesspit such as "Softonic" or "CNET Download." Never visit either of those sites again. You might also have downloaded it from an ad in a page on some other site. The ad would probably have included a large green button labeled "Download" or "Download Now" in white letters. The button is designed to confuse people who intend to download something else on the same page. If you ever download a file that isn't obviously what you expected, delete it immediately.
In the Security & Privacy pane of System Preferences, select the General tab. The radio button marked Anywhere should not be selected. If it is, click the lock icon to unlock the settings, then select one of the other buttons. After that, don't ignore a warning that you are about to run or install an application from an unknown developer.
Still in System Preferences, open the App Store or Software Update pane and check the box marked
Install system data files and security updates (OS X 10.10 or later)
or
Download updates automatically (OS X 10.9 or earlier)
if it's not already checked. -
Hi All,
I am facing a peculiar problem while executing an infoset query.I have created 2 customized fields Compa-ratio and PIR in infotype 0008 in an infoset.I have coded in these additional fields.
When I execute a query using 1 of these customized fields the report is generated correctly.But when I put both the fields in the output the report shows an error "Error when generating the report (see long text)". The message# associated with this errAQ_AD_HOC221.
I have also checked the data types and the references. Nothing seems to be wrong here.
Does anybody has any clue about this ?
KajalHi Bernd,
I had a look at those notes. But the information provided did'nt prove to be helpful. I found out the problem. I was using the same local variable for both the fields in their code. This generated the error. This error is a very generic one and does'nt help in finding out what exactly is the problem.
I changed the other local variable and it started working. When I was using the same variable that time I did'nt forget to clear the values but the query still generated the error.
Anyways thanks a lot for the reply.
Kajal -
How can i remote access my time capsule when mobile me is no longer offered iCloud is months away and I do NOT have a static IP?
I feel that apple has crippled the functionality of my time capsule as I can no longer access the files abroad!Try the advice in this thread.
-
Holding down the option key when booting my iMac lo longer shows me my bootable external drives, the system just boots up to the main system. Also, holding down command, option,P,R no longer zaps the p-ram. the system just boots up normally. Why do these key fonctions no longer work?
It could be your timing if on a bluetooth keyboard. I find it best to hit the keys as soon as i hear the chime, release and hit them again but this time holding them before the chime ends....like a fake pump in football.
But....you can always open up system preferences, startup disk, and select your bootable clone for booting. If it doesn't show up there, the Mac doesn't think it's bootable. -
When query is taking too long time
When query is taking too long time,Where and how to start tuning it?
Here i've listed few things need to be considered,out of my knowledge and understanding
1.What the sql is waiting for(wait events)
2.Parameter modification need to be done at system/session level
3.The query has to be tuned (using hints )
4.Gathering/deleting statistics
List out any other things that need to be taken into account?
Which approach must be followed and on what basis that approach must be considered?When query is taking too long time,Where and how to start tuning it?explain plan will be good start . trace also
Here i've listed few things need to be considered,out of my knowledge and understanding
1.What the sql is waiting for(wait events)When Oracle executes an SQL statement, it is not constantly executing. Sometimes it has to wait for a specific event to happen befor it can proceed.
Read
http://www.adp-gmbh.ch/ora/tuning/event.html
2.Parameter modification need to be done at system/session levelDepend on parameter , define parameter , trace done on session level for example
3.The query has to be tuned (using hints )Could be help you but you must know how to use .
4.Gathering/deleting statisticsDo it in non working hours , it will impact on database performance , but its good
List out any other things that need to be taken into account?Which account ?
Which approach must be followed and on what basis that approach must be considered?you could use lot of tools , Trace , AWR -
NoSuchMethodError when call JPublisher method
Im getting a java.lang.NoSuchMethod error when calling a method within
a Java class generated by JPublisher.Hi Larry,
thanks for the answer:
DB Version is:
select * from v$version:
SQL> select * from v$version;
BANNER
Oracle9i Enterprise Edition Release 9.0.1.4.0 - 64bit Production
PL/SQL Release 9.0.1.4.0 - Production
CORE 9.0.1.2.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.0.1.4.0 - Production
NLSRTL Version 9.0.1.4.0 - Production
Is there a possibility to get out if intermedia is installed? I really think it is because the methods work. I can process the image - the problem is that somehow a error occurs but the the method worked. The image written to the filesystem has the correct values.
describe ordsys.ordimage leads to the expected output:
SQL> describe ordsys.ordimage;
Element Type
SOURCE ORDSYS.ORDSOURCE
HEIGHT INTEGER
WIDTH INTEGER
CONTENTLENGTH INTEGER
FILEFORMAT VARCHAR2(4000)
CONTENTFORMAT VARCHAR2(4000)
COMPRESSIONFORMAT VARCHAR2(4000)
MIMETYPE VARCHAR2(4000)
INIT FUNCTION
COPY PROCEDURE
PROCESS PROCEDURE
PROCESSCOPY PROCEDURE
SETPROPERTIES PROCEDURE
CHECKPROPERTIES FUNCTION
GETHEIGHT FUNCTION
GETWIDTH FUNCTION
GETFILEFORMAT FUNCTION
GETCONTENTFORMAT FUNCTION
GETCOMPRESSIONFORMAT FUNCTION
SETLOCAL PROCEDURE
CLEARLOCAL PROCEDURE
ISLOCAL FUNCTION
GETUPDATETIME FUNCTION
SETUPDATETIME PROCEDURE
GETMIMETYPE FUNCTION
SETMIMETYPE PROCEDURE
GETCONTENTLENGTH FUNCTION
GETCONTENT FUNCTION
GETBFILE FUNCTION
DELETECONTENT PROCEDURE
SETSOURCE PROCEDURE
GETSOURCE FUNCTION
GETSOURCETYPE FUNCTION
GETSOURCELOCATION FUNCTION
GETSOURCENAME FUNCTION
IMPORT PROCEDURE
IMPORTFROM PROCEDURE
EXPORT PROCEDURE
PROCESSSOURCECOMMAND FUNCTION
OPENSOURCE FUNCTION
CLOSESOURCE FUNCTION
TRIMSOURCE FUNCTION
READFROMSOURCE PROCEDURE
WRITETOSOURCE PROCEDURE
MIGRATEFROMORDIMGB PROCEDURE
MIGRATEFROMORDIMGF PROCEDURE
GETPROPERTIES PROCEDURE
I do not want to use a database link. everything is stored in that one database. I really have no clue why plsql thinks I want to.
Regards,
Markus -
Error when using findbykey method
hi am having this error when using below method cannot assign of type sms1405.common.agrROW TO variable of type oracle.jbo.row[]. type 'oracle.jbo.row[]' excepected but 'sms1405.common.agRROW' found the error is in this line agrRows = (AGRRow)agrRows[0]; the methos is
am using this sample
http://amulyamishras-tech-blog.blogspot.com/2011/01/viewobject-getrow-vs-findbykey.html
where does EmpVORow in EmpVORow empRow =
(EmpVORow)EmpVO.getRow(key); define from above sample
where does EmpVO from EmpVORow empRow =
(EmpVORow)EmpVO.getRow(key); define from above sample
am in Jdeveloper 11.1.2.1.0
Edited by: Tshifhiwa on 2012/07/03 4:36 PMMan, you should be able to find this out your self by now!
Hint: there is one 's' too much in the line you get the error (i guess cut & past error)
Try to understand the code you copied!
Timo -
Error when sending message: Method not implemented
Hi, All:
We have newly setup system and when we test sending test message from RWB, (RWB-Component Monitoring-Integration Engine-Test Tab), we got following error:
"Error when sending message: Method not implemented", I know this is related to post configuration issue, I just know someone has come cross the situation and how it was resolved.
Thanks
LiangHI Liang
Yes it looks like post installation problem. I have not come across this but i think you should check with the RFC created for IE while installation. To connect IE & AE and even the exchange profile if something is missing
Thanks
Gaurav -
HT204088 i have balance in my account when my payment method decline
i have balance in my account when my payment method was decline
If you have a credit card on your account (I don't think that debit cards are still accepted), whether or not you have a balance on your account, then it needs to be registered to exactly the same name and address (including format and spacing etc) that you have on your iTunes account, be issued by a bank in your country and you need to be in that country - otherwise you may get the 'declined' message. If you can't see anything wrong with the card details, and you've checked with the card issuer in case it's them that are declining it, then you could try contacting iTunes support and see if they know why it's being declined : http://www.apple.com/support/itunes/contact/ - click on Contact iTunes Store Support on the right-hand side of the page
-
Changing exception clause in method signature when overwriting a method
Hi,
I stumbled upon a situation by accident and am not really clear on the details surrounding it. A short description:
Say there is some API with interfaces Foo and Bar as follows:
public interface Foo {
void test() throws Exception;
public interface Bar extends Foo {
void test();
}Now, I find it strange that method test() for interface Bar does not need to define Exception in its throws clause. When I first started with Java I was using Java 1.4.2; I now use Java 1.6. I cannot remember ever reading about this before and I have been unable to find an explanation or tutorial on how (or why) this works.
Consider a more practical example:
Say there is an API that uses RMI and defines interfaces as follwows:
public interface RemoteHelper extends Remote {
public Object select(int uid) throws RemoteException;
public interface LocalHelper extends RemoteHelper {
public Object select(int uid);
}As per the RMI spec every method defined in a Remote interface must define RemoteException in its throws clause. The LocalHelper cannot be exported remotely (this will fail at runtime due to select() in LocalHelper not having RemoteException in its clause if I remember correctly).
However, an implementing class for LocalHelper could represent a wrapper class for RemoteHelper, like this:
public class Helper implements LocalHelper {
private final RemoteHelper helper;
public Helper(RemoteHelper helper) {
this.helper = helper;
public Object select(int id) {
try {
return (this.helper.select(id));
} catch(RemoteException e) {
// invoke app failure mechanism
}This can uncouple an app from RMI dependancy. In more practical words: consider a webapp that contains two Servlets: a "startup" servlet and an "invocation" servlet. The startup servlet does nothing (always returns Method Not Allowed, default behaviour of HttpServlet), except locate an RMI Registry upon startup and look up some object bound to it. It can then make this object accessible to other classes through whatever means (i.e. a singleton Engine class).
The invocation servlet does nothing upon startup, but simply calls some method on the previously acquired remote object. However, the invocation servlet does not need to know that the object is remote. Therefore, if the startup servlet wraps the remote object in another object (using the idea described before) then the invocation servlet is effectively removed from the RMI dependancy. The wrapper class can invoke some sort of failure mechanism upon the singleton engine (i.e. removing the remote object from memory) and optionally throw some other (optionally checked) exception (i.e. IllegalStateException) to the invocation servlet.
In this way, the invocation servlet is not bound to RMI, there can be a single point where RemoteExceptions are handled and an unchecked exception (i.e. IllegalStateException) can be handled by the Servlet API through an exception error page, displaying a "Service Unavailable" message.
Sorry for all this extensive text; I just typed out some thoughts. In short, my question is how and why can the throws clause change when overwriting a method? It's nothing I need though, except for the clarity (e.g. is this a bad practice to do?) and was more of an observation than a question.
PS: Unless I'm mistaken, this is basically called the "Adapter" or "Bridge" (not sure which one it is) pattern (or a close adaptation to it) right (where one class is written to provide access to another class where the method signature is different)?
Thanks for reading,
YuthuraYuthura wrote:
I know it may throw any checked exception, but I'm pretty certain that an interface that extends java.rmi.Remote must include at least java.rmi.RemoteException in its throws clause (unless the spec has changed in Java 1.5/1.6).No.
A method can always throw fewer exceptions than the one it's overriding. RMI has nothing to do with it.
See Deitel & Deilte Advanced Java 2 Platform How To Program, 1st Ed. (ISBN 0-13-089650-1), page 793 (sorry, I couldn't find the RMI spec quick enough). Quote: "Each method in a Remote interface must have a throws clause that indicates that the method can throw RemoteException".Which means that there's always a possibility of RemoteException being thrown. That's a different issue. It's not becusae the parent class can throw RE. Rather, it's because some step that will always be followed is declared to throw RE.
I later also noticed I could not add other checked exceptions, which made sense indeed. Your explanation made perfect sense now that I heard (read) it. But just to humour my curousity, has this always been possible? Yes, Java has always worked that way.
PS: The overwriting/-riding was a grammatical typo (English is not my native language), but I meant to say what you said.No problem. Minor detail. It's a common mistake, but I always try to encourage proper terminology. -
what do you do when your phone numbers no longer have the contact persons name just a number. Also names are missing from the address book where contacts are.
I, too, love everything about my phone. The other day I tried to crash my Z10 by running multiple apps and having videos running in the background. Do you think my Z10 showed any signs of slowing down? Nothing doing! It ran as smooth as silk. I'm very impressed.
Cheers.
- If my response has helped you, please click "Options" beside my post and mark it as solved. Clicking the "thumbs up" icon near the bottom of my response would also be appreciated. -
Crash when using Invoke Method: Library:Deploy Library
I'm trying to set a library of shared variables to deploy when a VI runs. When using the method to deploy a library, Labview will crash with no error log. I am able to use Library.Open to, for example, HiliteInProjectWindow, and Library.GetFileLVVsersion (8.6). But for the life of me I cannot get deploy to work. Any ideas?
hbcnb,
I'm not quite sure why that is happening, but I
can give you a work around for it. There is a property node that
returns the mode that LabVIEW is running in (Run-Time, Development,
Evaluation). If you output this value to a case structure, you can
include your deploy code in the run-time version but not in your
development version so that it will cease to crash. Place down the
property node, then select Application » Kind. I've included a
picture of how to wire this up. Let me know if this helps work around
the problem a bit easier.
Sincerely,
Chris G in AE
Attachments:
application_pic.jpg 27 KB -
When a static method is accessed concurrently
When a static method is accessed by many objects symultaneously(concurrently),
What is happened in the static method.
Are the stacks for that method maded seperately and
each stack doesn't influence other stacks?
thank you in advance.The static objects or methods concept is clear, one
instance for all objects.No. One instance for the class.
, and every
one know that, static methods is slower than
nonstatic, Since when? I've certainly never heard that before... Do you have a reference I can look at?
and this is as i thought because static
methods are syncronized by default.Absoloutely not!
All synchronization locks on an object. When you synchronize an instance method, it locks on the implicit "this"; When you synchronize a static method, it locks on the class's associated Class object.
So two synchronized static methods in the same class can not be called at the same time, but synchronized instance methods that access static variables can all access those variables at the same time and potentially cause threading problems. In this situation you can declare the static fields volatile or wrap synchronized blocks around all code that accesses them, and synchronize on the same object (perhaps the Class object associated with the current class would be appropriate, but that reallt depends on the rest of your design). -
Revision: 10891
Author: [email protected]
Date: 2009-10-06 09:46:47 -0700 (Tue, 06 Oct 2009)
Log Message:
Fix for ASDoc throws error when using getter methods for pseudo-inheritance of static constants
QE notes: None.
Doc notes: None
Bugs: SDK-22676
Tests run: checkintests
Is noteworthy for integration: No
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-22676
Modified Paths:
flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/AsDocUtil.javaHave you tried using com.adobe.air.crypto.EncryptionKeyGenerator instead?
Maybe you are looking for
-
Share a USB HD connected to Time Capsule
I have seen several similar questions and responses, but none of them quite hits the spot (as far as I can tell). I am hoping to tap into the shared wisdom of this community to help! What I am trying to do, is to share on my wireless network, an exte
-
IPhoto All events collapsed into a single event dated 1969
A friend had all her iPhoto events arranged and orgainzed... until about a week ago, when everything collapsed into one event covering the birth of Unix in 1969 until last week. This is a disaster... googling around turned up a distressing number of
-
Must I Update To Version 1.2...?
Must I Update To Version 1.2...?
-
I can add music but not make playlists or much of anything else? This problem has persisted for a couple weeks now.
-
Best portable external drive for mac laptops
Any suggestions about the best portable hard drive for my mac lap;top.